@@ -184,7 +184,6 @@ ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONME
184
184
// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)
185
185
// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)
186
186
187
-
188
187
// `/` should be present at the end if `scriptDirectory` is not empty
189
188
var scriptDirectory = '' ;
190
189
function locateFile ( path ) {
@@ -351,6 +350,8 @@ for (key in moduleOverrides) {
351
350
// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.
352
351
moduleOverrides = undefined ;
353
352
353
+ // perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message
354
+
354
355
355
356
356
357
// Copyright 2017 The Emscripten Authors. All rights reserved.
@@ -1551,10 +1552,6 @@ function integrateWasmJS() {
1551
1552
updateGlobalBufferViews ( ) ;
1552
1553
}
1553
1554
1554
- function fixImports ( imports ) {
1555
- return imports ;
1556
- }
1557
-
1558
1555
function getBinary ( ) {
1559
1556
try {
1560
1557
if ( Module [ 'wasmBinary' ] ) {
@@ -1711,8 +1708,6 @@ function integrateWasmJS() {
1711
1708
// doesn't need to care that it is wasm or olyfilled wasm or asm.js.
1712
1709
1713
1710
Module [ 'asm' ] = function ( global , env , providedBuffer ) {
1714
- env = fixImports ( env ) ;
1715
-
1716
1711
// import table
1717
1712
if ( ! env [ 'table' ] ) {
1718
1713
var TABLE_SIZE = Module [ 'wasmTableSize' ] ;
@@ -1763,7 +1758,7 @@ var ASM_CONSTS = [];
1763
1758
1764
1759
STATIC_BASE = GLOBAL_BASE ;
1765
1760
1766
- STATICTOP = STATIC_BASE + 30192 ;
1761
+ STATICTOP = STATIC_BASE + 38304 ;
1767
1762
/* global initializers */ __ATINIT__ . push ( ) ;
1768
1763
1769
1764
@@ -1772,7 +1767,7 @@ STATICTOP = STATIC_BASE + 30192;
1772
1767
1773
1768
1774
1769
1775
- var STATIC_BUMP = 30192 ;
1770
+ var STATIC_BUMP = 38304 ;
1776
1771
Module [ "STATIC_BASE" ] = STATIC_BASE ;
1777
1772
Module [ "STATIC_BUMP" ] = STATIC_BUMP ;
1778
1773
@@ -1814,10 +1809,93 @@ function copyTempDouble(ptr) {
1814
1809
// {{PRE_LIBRARY}}
1815
1810
1816
1811
1812
+
1813
+ var SYSCALLS = { buffers :[ null , [ ] , [ ] ] , printChar :function ( stream , curr ) {
1814
+ var buffer = SYSCALLS . buffers [ stream ] ;
1815
+ assert ( buffer ) ;
1816
+ if ( curr === 0 || curr === 10 ) {
1817
+ ( stream === 1 ? out : err ) ( UTF8ArrayToString ( buffer , 0 ) ) ;
1818
+ buffer . length = 0 ;
1819
+ } else {
1820
+ buffer . push ( curr ) ;
1821
+ }
1822
+ } , varargs :0 , get :function ( varargs ) {
1823
+ SYSCALLS . varargs += 4 ;
1824
+ var ret = HEAP32 [ ( ( ( SYSCALLS . varargs ) - ( 4 ) ) >> 2 ) ] ;
1825
+ return ret ;
1826
+ } , getStr :function ( ) {
1827
+ var ret = Pointer_stringify ( SYSCALLS . get ( ) ) ;
1828
+ return ret ;
1829
+ } , get64 :function ( ) {
1830
+ var low = SYSCALLS . get ( ) , high = SYSCALLS . get ( ) ;
1831
+ if ( low >= 0 ) assert ( high === 0 ) ;
1832
+ else assert ( high === - 1 ) ;
1833
+ return low ;
1834
+ } , getZero :function ( ) {
1835
+ assert ( SYSCALLS . get ( ) === 0 ) ;
1836
+ } } ; function ___syscall140 ( which , varargs ) { SYSCALLS . varargs = varargs ;
1837
+ try {
1838
+ // llseek
1839
+ var stream = SYSCALLS . getStreamFromFD ( ) , offset_high = SYSCALLS . get ( ) , offset_low = SYSCALLS . get ( ) , result = SYSCALLS . get ( ) , whence = SYSCALLS . get ( ) ;
1840
+ // NOTE: offset_high is unused - Emscripten's off_t is 32-bit
1841
+ var offset = offset_low ;
1842
+ FS . llseek ( stream , offset , whence ) ;
1843
+ HEAP32 [ ( ( result ) >> 2 ) ] = stream . position ;
1844
+ if ( stream . getdents && offset === 0 && whence === 0 ) stream . getdents = null ; // reset readdir state
1845
+ return 0 ;
1846
+ } catch ( e ) {
1847
+ if ( typeof FS === 'undefined' || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
1848
+ return - e . errno ;
1849
+ }
1850
+ }
1851
+
1852
+
1853
+ function flush_NO_FILESYSTEM ( ) {
1854
+ // flush anything remaining in the buffers during shutdown
1855
+ var fflush = Module [ "_fflush" ] ;
1856
+ if ( fflush ) fflush ( 0 ) ;
1857
+ var buffers = SYSCALLS . buffers ;
1858
+ if ( buffers [ 1 ] . length ) SYSCALLS . printChar ( 1 , 10 ) ;
1859
+ if ( buffers [ 2 ] . length ) SYSCALLS . printChar ( 2 , 10 ) ;
1860
+ } function ___syscall146 ( which , varargs ) { SYSCALLS . varargs = varargs ;
1861
+ try {
1862
+ // writev
1863
+ // hack to support printf in FILESYSTEM=0
1864
+ var stream = SYSCALLS . get ( ) , iov = SYSCALLS . get ( ) , iovcnt = SYSCALLS . get ( ) ;
1865
+ var ret = 0 ;
1866
+ for ( var i = 0 ; i < iovcnt ; i ++ ) {
1867
+ var ptr = HEAP32 [ ( ( ( iov ) + ( i * 8 ) ) >> 2 ) ] ;
1868
+ var len = HEAP32 [ ( ( ( iov ) + ( i * 8 + 4 ) ) >> 2 ) ] ;
1869
+ for ( var j = 0 ; j < len ; j ++ ) {
1870
+ SYSCALLS . printChar ( stream , HEAPU8 [ ptr + j ] ) ;
1871
+ }
1872
+ ret += len ;
1873
+ }
1874
+ return ret ;
1875
+ } catch ( e ) {
1876
+ if ( typeof FS === 'undefined' || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
1877
+ return - e . errno ;
1878
+ }
1879
+ }
1880
+
1881
+ function ___syscall6 ( which , varargs ) { SYSCALLS . varargs = varargs ;
1882
+ try {
1883
+ // close
1884
+ var stream = SYSCALLS . getStreamFromFD ( ) ;
1885
+ FS . close ( stream ) ;
1886
+ return 0 ;
1887
+ } catch ( e ) {
1888
+ if ( typeof FS === 'undefined' || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
1889
+ return - e . errno ;
1890
+ }
1891
+ }
1892
+
1817
1893
function _abort ( ) {
1818
1894
Module [ 'abort' ] ( ) ;
1819
1895
}
1820
1896
1897
+
1898
+
1821
1899
var _llvm_cos_f64 = Math_cos ;
1822
1900
1823
1901
var _llvm_ctlz_i32 = true ;
@@ -1910,9 +1988,31 @@ function intArrayToString(array) {
1910
1988
1911
1989
1912
1990
1913
- Module [ 'wasmTableSize' ] = 8 ;
1991
+ Module [ 'wasmTableSize' ] = 14 ;
1992
+
1993
+ Module [ 'wasmMaxTableSize' ] = 14 ;
1994
+
1995
+ function invoke_ii ( index , a1 ) {
1996
+ var sp = stackSave ( ) ;
1997
+ try {
1998
+ return Module [ "dynCall_ii" ] ( index , a1 ) ;
1999
+ } catch ( e ) {
2000
+ stackRestore ( sp ) ;
2001
+ if ( typeof e !== 'number' && e !== 'longjmp' ) throw e ;
2002
+ Module [ "setThrew" ] ( 1 , 0 ) ;
2003
+ }
2004
+ }
1914
2005
1915
- Module [ 'wasmMaxTableSize' ] = 8 ;
2006
+ function invoke_iiii ( index , a1 , a2 , a3 ) {
2007
+ var sp = stackSave ( ) ;
2008
+ try {
2009
+ return Module [ "dynCall_iiii" ] ( index , a1 , a2 , a3 ) ;
2010
+ } catch ( e ) {
2011
+ stackRestore ( sp ) ;
2012
+ if ( typeof e !== 'number' && e !== 'longjmp' ) throw e ;
2013
+ Module [ "setThrew" ] ( 1 , 0 ) ;
2014
+ }
2015
+ }
1916
2016
1917
2017
function invoke_iiiiiii ( index , a1 , a2 , a3 , a4 , a5 , a6 ) {
1918
2018
var sp = stackSave ( ) ;
@@ -1927,13 +2027,14 @@ function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6) {
1927
2027
1928
2028
Module . asmGlobalArg = { } ;
1929
2029
1930
- Module . asmLibraryArg = { "abort" : abort , "assert" : assert , "enlargeMemory" : enlargeMemory , "getTotalMemory" : getTotalMemory , "abortOnCannotGrowMemory" : abortOnCannotGrowMemory , "invoke_iiiiiii" : invoke_iiiiiii , "___setErrNo" : ___setErrNo , "_abort" : _abort , "_emscripten_memcpy_big" : _emscripten_memcpy_big , "_llvm_cos_f64" : _llvm_cos_f64 , "_llvm_exp_f64" : _llvm_exp_f64 , "_llvm_fabs_f32" : _llvm_fabs_f32 , "_llvm_floor_f32" : _llvm_floor_f32 , "_llvm_sin_f64" : _llvm_sin_f64 , "_llvm_sqrt_f32" : _llvm_sqrt_f32 , "_llvm_sqrt_f64" : _llvm_sqrt_f64 , "_llvm_stackrestore" : _llvm_stackrestore , "_llvm_stacksave" : _llvm_stacksave , "DYNAMICTOP_PTR" : DYNAMICTOP_PTR , "tempDoublePtr" : tempDoublePtr , "STACKTOP" : STACKTOP , "STACK_MAX" : STACK_MAX } ;
2030
+ Module . asmLibraryArg = { "abort" : abort , "assert" : assert , "enlargeMemory" : enlargeMemory , "getTotalMemory" : getTotalMemory , "abortOnCannotGrowMemory" : abortOnCannotGrowMemory , "invoke_ii" : invoke_ii , "invoke_iiii" : invoke_iiii , " invoke_iiiiiii" : invoke_iiiiiii , "___setErrNo" : ___setErrNo , "___syscall140" : ___syscall140 , "___syscall146" : ___syscall146 , "___syscall6" : ___syscall6 , " _abort" : _abort , "_emscripten_memcpy_big" : _emscripten_memcpy_big , "_llvm_cos_f64" : _llvm_cos_f64 , "_llvm_exp_f64" : _llvm_exp_f64 , "_llvm_fabs_f32" : _llvm_fabs_f32 , "_llvm_floor_f32" : _llvm_floor_f32 , "_llvm_sin_f64" : _llvm_sin_f64 , "_llvm_sqrt_f32" : _llvm_sqrt_f32 , "_llvm_sqrt_f64" : _llvm_sqrt_f64 , "_llvm_stackrestore" : _llvm_stackrestore , "_llvm_stacksave" : _llvm_stacksave , "flush_NO_FILESYSTEM" : flush_NO_FILESYSTEM , "DYNAMICTOP_PTR" : DYNAMICTOP_PTR , "tempDoublePtr" : tempDoublePtr , "STACKTOP" : STACKTOP , "STACK_MAX" : STACK_MAX } ;
1931
2031
// EMSCRIPTEN_START_ASM
1932
2032
var asm = Module [ "asm" ] // EMSCRIPTEN_END_ASM
1933
2033
( Module . asmGlobalArg , Module . asmLibraryArg , buffer ) ;
1934
2034
1935
2035
Module [ "asm" ] = asm ;
1936
2036
var _free = Module [ "_free" ] = function ( ) { return Module [ "asm" ] [ "_free" ] . apply ( null , arguments ) } ;
2037
+ var _llvm_bswap_i32 = Module [ "_llvm_bswap_i32" ] = function ( ) { return Module [ "asm" ] [ "_llvm_bswap_i32" ] . apply ( null , arguments ) } ;
1937
2038
var _malloc = Module [ "_malloc" ] = function ( ) { return Module [ "asm" ] [ "_malloc" ] . apply ( null , arguments ) } ;
1938
2039
var _memcpy = Module [ "_memcpy" ] = function ( ) { return Module [ "asm" ] [ "_memcpy" ] . apply ( null , arguments ) } ;
1939
2040
var _memmove = Module [ "_memmove" ] = function ( ) { return Module [ "asm" ] [ "_memmove" ] . apply ( null , arguments ) } ;
@@ -1953,6 +2054,8 @@ var setThrew = Module["setThrew"] = function() { return Module["asm"]["setThrew
1953
2054
var stackAlloc = Module [ "stackAlloc" ] = function ( ) { return Module [ "asm" ] [ "stackAlloc" ] . apply ( null , arguments ) } ;
1954
2055
var stackRestore = Module [ "stackRestore" ] = function ( ) { return Module [ "asm" ] [ "stackRestore" ] . apply ( null , arguments ) } ;
1955
2056
var stackSave = Module [ "stackSave" ] = function ( ) { return Module [ "asm" ] [ "stackSave" ] . apply ( null , arguments ) } ;
2057
+ var dynCall_ii = Module [ "dynCall_ii" ] = function ( ) { return Module [ "asm" ] [ "dynCall_ii" ] . apply ( null , arguments ) } ;
2058
+ var dynCall_iiii = Module [ "dynCall_iiii" ] = function ( ) { return Module [ "asm" ] [ "dynCall_iiii" ] . apply ( null , arguments ) } ;
1956
2059
var dynCall_iiiiiii = Module [ "dynCall_iiiiiii" ] = function ( ) { return Module [ "asm" ] [ "dynCall_iiiiiii" ] . apply ( null , arguments ) } ;
1957
2060
;
1958
2061
0 commit comments