@livestore/wa-sqlite 1.0.3-dev.6 → 1.0.5-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,16 +3,17 @@ import { createRequire } from 'module';
3
3
  const require = createRequire(import.meta.url);
4
4
 
5
5
  var Module = (() => {
6
- var _scriptDir = import.meta.url;
6
+ var _scriptName = import.meta.url;
7
7
 
8
8
  return (
9
9
  function(moduleArg = {}) {
10
+ var moduleRtn;
10
11
 
11
12
  // include: shell.js
12
13
  // The Module object: Our interface to the outside world. We import
13
14
  // and export values on it. There are various ways Module can be used:
14
15
  // 1. Not defined. We create it here
15
- // 2. A function parameter, function(Module) { ..generated code.. }
16
+ // 2. A function parameter, function(moduleArg) => Promise<Module>
16
17
  // 3. pre-run appended it, var Module = {}; ..generated code..
17
18
  // 4. External script tag defines var Module.
18
19
  // We need to check if Module already exists (e.g. case 3 above).
@@ -26,19 +27,35 @@ var Module = moduleArg;
26
27
 
27
28
  // Set up the promise that indicates the Module is initialized
28
29
  var readyPromiseResolve, readyPromiseReject;
29
- Module['ready'] = new Promise((resolve, reject) => {
30
+ var readyPromise = new Promise((resolve, reject) => {
30
31
  readyPromiseResolve = resolve;
31
32
  readyPromiseReject = reject;
32
33
  });
33
- ["_RegisterExtensionFunctions","_main","_malloc","_free","_sqlite3_aggregate_context","_sqlite3_auto_extension","_sqlite3_autovacuum_pages","_sqlite3_backup_finish","_sqlite3_backup_init","_sqlite3_backup_pagecount","_sqlite3_backup_remaining","_sqlite3_backup_step","_sqlite3_bind_blob","_sqlite3_bind_blob64","_sqlite3_bind_double","_sqlite3_bind_int","_sqlite3_bind_int64","_sqlite3_bind_null","_sqlite3_bind_parameter_count","_sqlite3_bind_parameter_index","_sqlite3_bind_parameter_name","_sqlite3_bind_pointer","_sqlite3_bind_text","_sqlite3_bind_text16","_sqlite3_bind_text64","_sqlite3_bind_value","_sqlite3_bind_zeroblob","_sqlite3_bind_zeroblob64","_sqlite3_blob_bytes","_sqlite3_blob_close","_sqlite3_blob_open","_sqlite3_blob_read","_sqlite3_blob_reopen","_sqlite3_blob_write","_sqlite3_busy_handler","_sqlite3_busy_timeout","_sqlite3_cancel_auto_extension","_sqlite3_changes","_sqlite3_changes64","_sqlite3_clear_bindings","_sqlite3_close","_sqlite3_close_v2","_sqlite3_collation_needed","_sqlite3_collation_needed16","_sqlite3_column_blob","_sqlite3_column_bytes","_sqlite3_column_bytes16","_sqlite3_column_count","_sqlite3_column_double","_sqlite3_column_int","_sqlite3_column_int64","_sqlite3_column_name","_sqlite3_column_name16","_sqlite3_column_text","_sqlite3_column_text16","_sqlite3_column_type","_sqlite3_column_value","_sqlite3_commit_hook","_sqlite3_compileoption_get","_sqlite3_compileoption_used","_sqlite3_complete","_sqlite3_complete16","_sqlite3_config","_sqlite3_context_db_handle","_sqlite3_create_collation","_sqlite3_create_collation16","_sqlite3_create_collation_v2","_sqlite3_create_filename","_sqlite3_create_function","_sqlite3_create_function16","_sqlite3_create_function_v2","_sqlite3_create_module","_sqlite3_create_module_v2","_sqlite3_create_window_function","_sqlite3_data_count","_sqlite3_database_file_object","_sqlite3_db_cacheflush","_sqlite3_db_config","_sqlite3_db_filename","_sqlite3_db_handle","_sqlite3_db_mutex","_sqlite3_db_name","_sqlite3_db_readonly","_sqlite3_db_release_memory","_sqlite3_db_status","_sqlite3_declare_vtab","_sqlite3_deserialize","_sqlite3_drop_modules","_sqlite3_errcode","_sqlite3_errmsg","_sqlite3_errmsg16","_sqlite3_error_offset","_sqlite3_errstr","_sqlite3_exec","_sqlite3_expanded_sql","_sqlite3_extended_errcode","_sqlite3_extended_result_codes","_sqlite3_file_control","_sqlite3_filename_database","_sqlite3_filename_journal","_sqlite3_filename_wal","_sqlite3_finalize","_sqlite3_free","_sqlite3_free_filename","_sqlite3_free_table","_sqlite3_get_autocommit","_sqlite3_get_auxdata","_sqlite3_get_clientdata","_sqlite3_get_table","_sqlite3_hard_heap_limit64","_sqlite3_initialize","_sqlite3_interrupt","_sqlite3_is_interrupted","_sqlite3_keyword_check","_sqlite3_keyword_count","_sqlite3_keyword_name","_sqlite3_last_insert_rowid","_sqlite3_libversion","_sqlite3_libversion_number","_sqlite3_limit","_sqlite3_log","_sqlite3_malloc","_sqlite3_malloc64","_sqlite3_memory_highwater","_sqlite3_memory_used","_sqlite3_mprintf","_sqlite3_msize","_sqlite3_next_stmt","_sqlite3_open","_sqlite3_open16","_sqlite3_open_v2","_sqlite3_os_end","_sqlite3_os_init","_sqlite3_overload_function","_sqlite3_prepare","_sqlite3_prepare16","_sqlite3_prepare16_v2","_sqlite3_prepare16_v3","_sqlite3_prepare_v2","_sqlite3_prepare_v3","_sqlite3_progress_handler","_sqlite3_randomness","_sqlite3_realloc","_sqlite3_realloc64","_sqlite3_release_memory","_sqlite3_reset","_sqlite3_reset_auto_extension","_sqlite3_result_blob","_sqlite3_result_blob64","_sqlite3_result_double","_sqlite3_result_error","_sqlite3_result_error16","_sqlite3_result_error_code","_sqlite3_result_error_nomem","_sqlite3_result_error_toobig","_sqlite3_result_int","_sqlite3_result_int64","_sqlite3_result_null","_sqlite3_result_pointer","_sqlite3_result_subtype","_sqlite3_result_text","_sqlite3_result_text16","_sqlite3_result_text16be","_sqlite3_result_text16le","_sqlite3_result_text64","_sqlite3_result_value","_sqlite3_result_zeroblob","_sqlite3_result_zeroblob64","_sqlite3_rollback_hook","_sqlite3_serialize","_sqlite3_set_authorizer","_sqlite3_set_auxdata","_sqlite3_set_clientdata","_sqlite3_set_last_insert_rowid","_sqlite3_shutdown","_sqlite3_sleep","_sqlite3_snprintf","_sqlite3_soft_heap_limit64","_sqlite3_sourceid","_sqlite3_sql","_sqlite3_status","_sqlite3_status64","_sqlite3_step","_sqlite3_stmt_busy","_sqlite3_stmt_explain","_sqlite3_stmt_isexplain","_sqlite3_stmt_readonly","_sqlite3_stmt_status","_sqlite3_str_append","_sqlite3_str_appendall","_sqlite3_str_appendchar","_sqlite3_str_appendf","_sqlite3_str_errcode","_sqlite3_str_finish","_sqlite3_str_length","_sqlite3_str_new","_sqlite3_str_reset","_sqlite3_str_value","_sqlite3_str_vappendf","_sqlite3_strglob","_sqlite3_stricmp","_sqlite3_strlike","_sqlite3_strnicmp","_sqlite3_system_errno","_sqlite3_table_column_metadata","_sqlite3_test_control","_sqlite3_threadsafe","_sqlite3_total_changes","_sqlite3_total_changes64","_sqlite3_trace_v2","_sqlite3_txn_state","_sqlite3_update_hook","_sqlite3changeset_start","_sqlite3changeset_finalize","_sqlite3session_create","_sqlite3session_attach","_sqlite3session_enable","_sqlite3session_changeset","_sqlite3session_delete","_sqlite3changeset_invert","_sqlite3changeset_apply","_sqlite3_uri_boolean","_sqlite3_uri_int64","_sqlite3_uri_key","_sqlite3_uri_parameter","_sqlite3_user_data","_sqlite3_value_blob","_sqlite3_value_bytes","_sqlite3_value_bytes16","_sqlite3_value_double","_sqlite3_value_dup","_sqlite3_value_encoding","_sqlite3_value_free","_sqlite3_value_frombind","_sqlite3_value_int","_sqlite3_value_int64","_sqlite3_value_nochange","_sqlite3_value_numeric_type","_sqlite3_value_pointer","_sqlite3_value_subtype","_sqlite3_value_text","_sqlite3_value_text16","_sqlite3_value_text16be","_sqlite3_value_text16le","_sqlite3_value_type","_sqlite3_version","_sqlite3_vfs_find","_sqlite3_vfs_register","_sqlite3_vfs_unregister","_sqlite3_vmprintf","_sqlite3_vsnprintf","_sqlite3_vtab_collation","_sqlite3_vtab_config","_sqlite3_vtab_distinct","_sqlite3_vtab_in","_sqlite3_vtab_in_first","_sqlite3_vtab_in_next","_sqlite3_vtab_nochange","_sqlite3_vtab_on_conflict","_sqlite3_vtab_rhs_value","_sqlite3_wal_autocheckpoint","_sqlite3_wal_checkpoint","_sqlite3_wal_checkpoint_v2","_sqlite3_wal_hook","_memory","_getSqliteFree","_libauthorizer_set_authorizer","_libfunction_create_function","_libhook_update_hook","_libprogress_progress_handler","_libvfs_vfs_register","___indirect_function_table","_fflush","onRuntimeInitialized"].forEach((prop) => {
34
- if (!Object.getOwnPropertyDescriptor(Module['ready'], prop)) {
35
- Object.defineProperty(Module['ready'], prop, {
34
+ ["_RegisterExtensionFunctions","_malloc","_free","_sqlite3_aggregate_context","_sqlite3_auto_extension","_sqlite3_autovacuum_pages","_sqlite3_backup_finish","_sqlite3_backup_init","_sqlite3_backup_pagecount","_sqlite3_backup_remaining","_sqlite3_backup_step","_sqlite3_bind_blob","_sqlite3_bind_blob64","_sqlite3_bind_double","_sqlite3_bind_int","_sqlite3_bind_int64","_sqlite3_bind_null","_sqlite3_bind_parameter_count","_sqlite3_bind_parameter_index","_sqlite3_bind_parameter_name","_sqlite3_bind_pointer","_sqlite3_bind_text","_sqlite3_bind_text16","_sqlite3_bind_text64","_sqlite3_bind_value","_sqlite3_bind_zeroblob","_sqlite3_bind_zeroblob64","_sqlite3_blob_bytes","_sqlite3_blob_close","_sqlite3_blob_open","_sqlite3_blob_read","_sqlite3_blob_reopen","_sqlite3_blob_write","_sqlite3_busy_handler","_sqlite3_busy_timeout","_sqlite3_cancel_auto_extension","_sqlite3_changes","_sqlite3_changes64","_sqlite3_clear_bindings","_sqlite3_close","_sqlite3_close_v2","_sqlite3_collation_needed","_sqlite3_collation_needed16","_sqlite3_column_blob","_sqlite3_column_bytes","_sqlite3_column_bytes16","_sqlite3_column_count","_sqlite3_column_double","_sqlite3_column_int","_sqlite3_column_int64","_sqlite3_column_name","_sqlite3_column_name16","_sqlite3_column_text","_sqlite3_column_text16","_sqlite3_column_type","_sqlite3_column_value","_sqlite3_commit_hook","_sqlite3_compileoption_get","_sqlite3_compileoption_used","_sqlite3_complete","_sqlite3_complete16","_sqlite3_config","_sqlite3_context_db_handle","_sqlite3_create_collation","_sqlite3_create_collation16","_sqlite3_create_collation_v2","_sqlite3_create_filename","_sqlite3_create_function","_sqlite3_create_function16","_sqlite3_create_function_v2","_sqlite3_create_module","_sqlite3_create_module_v2","_sqlite3_create_window_function","_sqlite3_data_count","_sqlite3_database_file_object","_sqlite3_db_cacheflush","_sqlite3_db_config","_sqlite3_db_filename","_sqlite3_db_handle","_sqlite3_db_mutex","_sqlite3_db_name","_sqlite3_db_readonly","_sqlite3_db_release_memory","_sqlite3_db_status","_sqlite3_declare_vtab","_sqlite3_deserialize","_sqlite3_drop_modules","_sqlite3_errcode","_sqlite3_errmsg","_sqlite3_errmsg16","_sqlite3_error_offset","_sqlite3_errstr","_sqlite3_exec","_sqlite3_expanded_sql","_sqlite3_extended_errcode","_sqlite3_extended_result_codes","_sqlite3_file_control","_sqlite3_filename_database","_sqlite3_filename_journal","_sqlite3_filename_wal","_sqlite3_finalize","_sqlite3_free","_sqlite3_free_filename","_sqlite3_free_table","_sqlite3_get_autocommit","_sqlite3_get_auxdata","_sqlite3_get_clientdata","_sqlite3_get_table","_sqlite3_hard_heap_limit64","_sqlite3_initialize","_sqlite3_interrupt","_sqlite3_is_interrupted","_sqlite3_keyword_check","_sqlite3_keyword_count","_sqlite3_keyword_name","_sqlite3_last_insert_rowid","_sqlite3_libversion","_sqlite3_libversion_number","_sqlite3_limit","_sqlite3_log","_sqlite3_malloc","_sqlite3_malloc64","_sqlite3_memory_highwater","_sqlite3_memory_used","_sqlite3_mprintf","_sqlite3_msize","_sqlite3_next_stmt","_sqlite3_open","_sqlite3_open16","_sqlite3_open_v2","_sqlite3_os_end","_sqlite3_os_init","_sqlite3_overload_function","_sqlite3_prepare","_sqlite3_prepare16","_sqlite3_prepare16_v2","_sqlite3_prepare16_v3","_sqlite3_prepare_v2","_sqlite3_prepare_v3","_sqlite3_progress_handler","_sqlite3_randomness","_sqlite3_realloc","_sqlite3_realloc64","_sqlite3_release_memory","_sqlite3_reset","_sqlite3_reset_auto_extension","_sqlite3_result_blob","_sqlite3_result_blob64","_sqlite3_result_double","_sqlite3_result_error","_sqlite3_result_error16","_sqlite3_result_error_code","_sqlite3_result_error_nomem","_sqlite3_result_error_toobig","_sqlite3_result_int","_sqlite3_result_int64","_sqlite3_result_null","_sqlite3_result_pointer","_sqlite3_result_subtype","_sqlite3_result_text","_sqlite3_result_text16","_sqlite3_result_text16be","_sqlite3_result_text16le","_sqlite3_result_text64","_sqlite3_result_value","_sqlite3_result_zeroblob","_sqlite3_result_zeroblob64","_sqlite3_rollback_hook","_sqlite3_serialize","_sqlite3_set_authorizer","_sqlite3_set_auxdata","_sqlite3_set_clientdata","_sqlite3_set_last_insert_rowid","_sqlite3_shutdown","_sqlite3_sleep","_sqlite3_snprintf","_sqlite3_soft_heap_limit64","_sqlite3_sourceid","_sqlite3_sql","_sqlite3_status","_sqlite3_status64","_sqlite3_step","_sqlite3_stmt_busy","_sqlite3_stmt_explain","_sqlite3_stmt_isexplain","_sqlite3_stmt_readonly","_sqlite3_stmt_status","_sqlite3_str_append","_sqlite3_str_appendall","_sqlite3_str_appendchar","_sqlite3_str_appendf","_sqlite3_str_errcode","_sqlite3_str_finish","_sqlite3_str_length","_sqlite3_str_new","_sqlite3_str_reset","_sqlite3_str_value","_sqlite3_str_vappendf","_sqlite3_strglob","_sqlite3_stricmp","_sqlite3_strlike","_sqlite3_strnicmp","_sqlite3_system_errno","_sqlite3_table_column_metadata","_sqlite3_test_control","_sqlite3_threadsafe","_sqlite3_total_changes","_sqlite3_total_changes64","_sqlite3_trace_v2","_sqlite3_txn_state","_sqlite3_update_hook","_sqlite3changeset_start","_sqlite3changeset_finalize","_sqlite3session_create","_sqlite3session_attach","_sqlite3session_enable","_sqlite3session_changeset","_sqlite3session_delete","_sqlite3changeset_invert","_sqlite3changeset_apply","_sqlite3_uri_boolean","_sqlite3_uri_int64","_sqlite3_uri_key","_sqlite3_uri_parameter","_sqlite3_user_data","_sqlite3_value_blob","_sqlite3_value_bytes","_sqlite3_value_bytes16","_sqlite3_value_double","_sqlite3_value_dup","_sqlite3_value_encoding","_sqlite3_value_free","_sqlite3_value_frombind","_sqlite3_value_int","_sqlite3_value_int64","_sqlite3_value_nochange","_sqlite3_value_numeric_type","_sqlite3_value_pointer","_sqlite3_value_subtype","_sqlite3_value_text","_sqlite3_value_text16","_sqlite3_value_text16be","_sqlite3_value_text16le","_sqlite3_value_type","_sqlite3_version","_sqlite3_vfs_find","_sqlite3_vfs_register","_sqlite3_vfs_unregister","_sqlite3_vmprintf","_sqlite3_vsnprintf","_sqlite3_vtab_collation","_sqlite3_vtab_config","_sqlite3_vtab_distinct","_sqlite3_vtab_in","_sqlite3_vtab_in_first","_sqlite3_vtab_in_next","_sqlite3_vtab_nochange","_sqlite3_vtab_on_conflict","_sqlite3_vtab_rhs_value","_sqlite3_wal_autocheckpoint","_sqlite3_wal_checkpoint","_sqlite3_wal_checkpoint_v2","_sqlite3_wal_hook","_memory","_getSqliteFree","_libauthorizer_set_authorizer","_libfunction_create_function","_libhook_commit_hook","_libhook_update_hook","_libprogress_progress_handler","_libvfs_vfs_register","___indirect_function_table","_main","onRuntimeInitialized"].forEach((prop) => {
35
+ if (!Object.getOwnPropertyDescriptor(readyPromise, prop)) {
36
+ Object.defineProperty(readyPromise, prop, {
36
37
  get: () => abort('You are getting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'),
37
38
  set: () => abort('You are setting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'),
38
39
  });
39
40
  }
40
41
  });
41
42
 
43
+ // Determine the runtime environment we are in. You can customize this by
44
+ // setting the ENVIRONMENT setting at compile time (see settings.js).
45
+
46
+ var ENVIRONMENT_IS_WEB = false;
47
+ var ENVIRONMENT_IS_WORKER = false;
48
+ var ENVIRONMENT_IS_NODE = true;
49
+ var ENVIRONMENT_IS_SHELL = false;
50
+
51
+ if (ENVIRONMENT_IS_NODE) {
52
+ // `require()` is no-op in an ESM module, use `createRequire()` to construct
53
+ // the require()` function. This is only necessary for multi-environment
54
+ // builds, `-sENVIRONMENT=node` emits a static import declaration instead.
55
+ // TODO: Swap all `require()`'s with `import()`'s?
56
+
57
+ }
58
+
42
59
  // --pre-jses are emitted after the Module integration code, so that they can
43
60
  // refer to Module (if they choose; they can also define Module)
44
61
 
@@ -56,18 +73,6 @@ var quit_ = (status, toThrow) => {
56
73
  throw toThrow;
57
74
  };
58
75
 
59
- // Determine the runtime environment we are in. You can customize this by
60
- // setting the ENVIRONMENT setting at compile time (see settings.js).
61
-
62
- var ENVIRONMENT_IS_WEB = false;
63
- var ENVIRONMENT_IS_WORKER = false;
64
- var ENVIRONMENT_IS_NODE = true;
65
- var ENVIRONMENT_IS_SHELL = false;
66
-
67
- if (Module['ENVIRONMENT']) {
68
- throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)');
69
- }
70
-
71
76
  // `/` should be present at the end if `scriptDirectory` is not empty
72
77
  var scriptDirectory = '';
73
78
  function locateFile(path) {
@@ -78,9 +83,7 @@ function locateFile(path) {
78
83
  }
79
84
 
80
85
  // Hooks that are implemented differently in different runtime environments.
81
- var read_,
82
- readAsync,
83
- readBinary;
86
+ var readAsync, readBinary;
84
87
 
85
88
  if (ENVIRONMENT_IS_NODE) {
86
89
  if (typeof process == 'undefined' || !process.release || process.release.name !== 'node') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)');
@@ -93,47 +96,36 @@ if (ENVIRONMENT_IS_NODE) {
93
96
  throw new Error('This emscripten-generated code requires node v16.0.0 (detected v' + nodeVersion + ')');
94
97
  }
95
98
 
96
- // `require()` is no-op in an ESM module, use `createRequire()` to construct
97
- // the require()` function. This is only necessary for multi-environment
98
- // builds, `-sENVIRONMENT=node` emits a static import declaration instead.
99
- // TODO: Swap all `require()`'s with `import()`'s?
100
99
  // These modules will usually be used on Node.js. Load them eagerly to avoid
101
100
  // the complexity of lazy-loading.
102
101
  var fs = require('fs');
103
102
  var nodePath = require('path');
104
103
 
105
- if (ENVIRONMENT_IS_WORKER) {
106
- scriptDirectory = nodePath.dirname(scriptDirectory) + '/';
107
- } else {
108
- // EXPORT_ES6 + ENVIRONMENT_IS_NODE always requires use of import.meta.url,
109
- // since there's no way getting the current absolute path of the module when
110
- // support for that is not available.
111
- scriptDirectory = require('url').fileURLToPath(new URL('./', import.meta.url)); // includes trailing slash
104
+ // EXPORT_ES6 + ENVIRONMENT_IS_NODE always requires use of import.meta.url,
105
+ // since there's no way getting the current absolute path of the module when
106
+ // support for that is not available.
107
+ if (!import.meta.url.startsWith('data:')) {
108
+ scriptDirectory = nodePath.dirname(require('url').fileURLToPath(import.meta.url)) + '/';
112
109
  }
113
110
 
114
111
  // include: node_shell_read.js
115
- read_ = (filename, binary) => {
112
+ readBinary = (filename) => {
116
113
  // We need to re-wrap `file://` strings to URLs. Normalizing isn't
117
114
  // necessary in that case, the path should already be absolute.
118
115
  filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);
119
- return fs.readFileSync(filename, binary ? undefined : 'utf8');
120
- };
121
-
122
- readBinary = (filename) => {
123
- var ret = read_(filename, true);
124
- if (!ret.buffer) {
125
- ret = new Uint8Array(ret);
126
- }
116
+ var ret = fs.readFileSync(filename);
127
117
  assert(ret.buffer);
128
118
  return ret;
129
119
  };
130
120
 
131
- readAsync = (filename, onload, onerror, binary = true) => {
132
- // See the comment in the `read_` function.
121
+ readAsync = (filename, binary = true) => {
122
+ // See the comment in the `readBinary` function.
133
123
  filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);
134
- fs.readFile(filename, binary ? undefined : 'utf8', (err, data) => {
135
- if (err) onerror(err);
136
- else onload(binary ? data.buffer : data);
124
+ return new Promise((resolve, reject) => {
125
+ fs.readFile(filename, binary ? undefined : 'utf8', (err, data) => {
126
+ if (err) reject(err);
127
+ else resolve(binary ? data.buffer : data);
128
+ });
137
129
  });
138
130
  };
139
131
  // end include: node_shell_read.js
@@ -150,76 +142,10 @@ readAsync = (filename, onload, onerror, binary = true) => {
150
142
  throw toThrow;
151
143
  };
152
144
 
153
- Module['inspect'] = () => '[Emscripten Module object]';
154
-
155
145
  } else
156
146
  if (ENVIRONMENT_IS_SHELL) {
157
147
 
158
- if ((typeof process == 'object' && typeof require === 'function') || typeof window == 'object' || typeof importScripts == 'function') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)');
159
-
160
- if (typeof read != 'undefined') {
161
- read_ = read;
162
- }
163
-
164
- readBinary = (f) => {
165
- if (typeof readbuffer == 'function') {
166
- return new Uint8Array(readbuffer(f));
167
- }
168
- let data = read(f, 'binary');
169
- assert(typeof data == 'object');
170
- return data;
171
- };
172
-
173
- readAsync = (f, onload, onerror) => {
174
- setTimeout(() => onload(readBinary(f)));
175
- };
176
-
177
- if (typeof clearTimeout == 'undefined') {
178
- globalThis.clearTimeout = (id) => {};
179
- }
180
-
181
- if (typeof setTimeout == 'undefined') {
182
- // spidermonkey lacks setTimeout but we use it above in readAsync.
183
- globalThis.setTimeout = (f) => (typeof f == 'function') ? f() : abort();
184
- }
185
-
186
- if (typeof scriptArgs != 'undefined') {
187
- arguments_ = scriptArgs;
188
- } else if (typeof arguments != 'undefined') {
189
- arguments_ = arguments;
190
- }
191
-
192
- if (typeof quit == 'function') {
193
- quit_ = (status, toThrow) => {
194
- // Unlike node which has process.exitCode, d8 has no such mechanism. So we
195
- // have no way to set the exit code and then let the program exit with
196
- // that code when it naturally stops running (say, when all setTimeouts
197
- // have completed). For that reason, we must call `quit` - the only way to
198
- // set the exit code - but quit also halts immediately. To increase
199
- // consistency with node (and the web) we schedule the actual quit call
200
- // using a setTimeout to give the current stack and any exception handlers
201
- // a chance to run. This enables features such as addOnPostRun (which
202
- // expected to be able to run code after main returns).
203
- setTimeout(() => {
204
- if (!(toThrow instanceof ExitStatus)) {
205
- let toLog = toThrow;
206
- if (toThrow && typeof toThrow == 'object' && toThrow.stack) {
207
- toLog = [toThrow, toThrow.stack];
208
- }
209
- err(`exiting due to exception: ${toLog}`);
210
- }
211
- quit(status);
212
- });
213
- throw toThrow;
214
- };
215
- }
216
-
217
- if (typeof print != 'undefined') {
218
- // Prefer to use print/printErr where they exist, as they usually work better.
219
- if (typeof console == 'undefined') console = /** @type{!Console} */({});
220
- console.log = /** @type{!function(this:Console, ...*): undefined} */ (print);
221
- console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ (typeof printErr != 'undefined' ? printErr : print);
222
- }
148
+ if ((typeof process == 'object' && typeof require === 'function') || typeof window == 'object' || typeof WorkerGlobalScope != 'undefined') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)');
223
149
 
224
150
  } else
225
151
 
@@ -236,7 +162,7 @@ var err = Module['printErr'] || console.error.bind(console);
236
162
  // Merge back in the overrides
237
163
  Object.assign(Module, moduleOverrides);
238
164
  // Free the object hierarchy contained in the overrides, this lets the GC
239
- // reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.
165
+ // reclaim data used.
240
166
  moduleOverrides = null;
241
167
  checkIncomingModuleAPI();
242
168
 
@@ -249,21 +175,18 @@ if (Module['arguments']) arguments_ = Module['arguments'];legacyModuleProp('argu
249
175
 
250
176
  if (Module['thisProgram']) thisProgram = Module['thisProgram'];legacyModuleProp('thisProgram', 'thisProgram');
251
177
 
252
- if (Module['quit']) quit_ = Module['quit'];legacyModuleProp('quit', 'quit_');
253
-
254
178
  // perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message
255
179
  // Assertions on removed incoming Module JS APIs.
256
180
  assert(typeof Module['memoryInitializerPrefixURL'] == 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead');
257
181
  assert(typeof Module['pthreadMainPrefixURL'] == 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead');
258
182
  assert(typeof Module['cdInitializerPrefixURL'] == 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead');
259
183
  assert(typeof Module['filePackagePrefixURL'] == 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead');
260
- assert(typeof Module['read'] == 'undefined', 'Module.read option was removed (modify read_ in JS)');
184
+ assert(typeof Module['read'] == 'undefined', 'Module.read option was removed');
261
185
  assert(typeof Module['readAsync'] == 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)');
262
186
  assert(typeof Module['readBinary'] == 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)');
263
187
  assert(typeof Module['setWindowTitle'] == 'undefined', 'Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)');
264
188
  assert(typeof Module['TOTAL_MEMORY'] == 'undefined', 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY');
265
189
  legacyModuleProp('asm', 'wasmExports');
266
- legacyModuleProp('read', 'read_');
267
190
  legacyModuleProp('readAsync', 'readAsync');
268
191
  legacyModuleProp('readBinary', 'readBinary');
269
192
  legacyModuleProp('setWindowTitle', 'setWindowTitle');
@@ -277,14 +200,14 @@ var OPFS = 'OPFS is no longer included by default; build with -lopfs.js';
277
200
 
278
201
  var NODEFS = 'NODEFS is no longer included by default; build with -lnodefs.js';
279
202
 
280
- assert(!ENVIRONMENT_IS_WEB, "web environment detected but not enabled at build time. Add 'web' to `-sENVIRONMENT` to enable.");
281
-
282
- assert(!ENVIRONMENT_IS_WORKER, "worker environment detected but not enabled at build time. Add 'worker' to `-sENVIRONMENT` to enable.");
203
+ assert(!ENVIRONMENT_IS_WEB, 'web environment detected but not enabled at build time. Add `web` to `-sENVIRONMENT` to enable.');
283
204
 
284
- assert(!ENVIRONMENT_IS_SHELL, "shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");
205
+ assert(!ENVIRONMENT_IS_WORKER, 'worker environment detected but not enabled at build time. Add `worker` to `-sENVIRONMENT` to enable.');
285
206
 
207
+ assert(!ENVIRONMENT_IS_SHELL, 'shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable.');
286
208
 
287
209
  // end include: shell.js
210
+
288
211
  // include: preamble.js
289
212
  // === Preamble library stuff ===
290
213
 
@@ -296,11 +219,10 @@ assert(!ENVIRONMENT_IS_SHELL, "shell environment detected but not enabled at bui
296
219
  // An online HTML version (which may be of a different version of Emscripten)
297
220
  // is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html
298
221
 
299
- var wasmBinary;
300
- if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];legacyModuleProp('wasmBinary', 'wasmBinary');
222
+ var wasmBinary = Module['wasmBinary'];legacyModuleProp('wasmBinary', 'wasmBinary');
301
223
 
302
224
  if (typeof WebAssembly != 'object') {
303
- abort('no native wasm support detected');
225
+ err('no native wasm support detected');
304
226
  }
305
227
 
306
228
  // Wasm globals
@@ -354,6 +276,7 @@ var HEAP,
354
276
  /** @type {!Float64Array} */
355
277
  HEAPF64;
356
278
 
279
+ // include: runtime_shared.js
357
280
  function updateMemoryViews() {
358
281
  var b = wasmMemory.buffer;
359
282
  Module['HEAP8'] = HEAP8 = new Int8Array(b);
@@ -366,6 +289,7 @@ function updateMemoryViews() {
366
289
  Module['HEAPF64'] = HEAPF64 = new Float64Array(b);
367
290
  }
368
291
 
292
+ // end include: runtime_shared.js
369
293
  assert(!Module['STACK_SIZE'], 'STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time')
370
294
 
371
295
  assert(typeof Int32Array != 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray != undefined && Int32Array.prototype.set != undefined,
@@ -413,16 +337,6 @@ function checkStackCookie() {
413
337
  }
414
338
  }
415
339
  // end include: runtime_stack_check.js
416
- // include: runtime_assertions.js
417
- // Endianness check
418
- (function() {
419
- var h16 = new Int16Array(1);
420
- var h8 = new Int8Array(h16.buffer);
421
- h16[0] = 0x6373;
422
- if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)';
423
- })();
424
-
425
- // end include: runtime_assertions.js
426
340
  var __ATPRERUN__ = []; // functions called before the runtime is initialized
427
341
  var __ATINIT__ = []; // functions called during startup
428
342
  var __ATMAIN__ = []; // functions called when main() is to be run
@@ -448,7 +362,7 @@ function initRuntime() {
448
362
  checkStackCookie();
449
363
 
450
364
 
451
- if (!Module["noFSInit"] && !FS.init.initialized)
365
+ if (!Module['noFSInit'] && !FS.initialized)
452
366
  FS.init();
453
367
  FS.ignorePermissions = false;
454
368
 
@@ -596,7 +510,6 @@ function abort(what) {
596
510
  err(what);
597
511
 
598
512
  ABORT = true;
599
- EXITSTATUS = 1;
600
513
 
601
514
  // Use a wasm runtime error, because a JS error might be seen as a foreign
602
515
  // exception, which means we'd run destructors on it. We need the error to
@@ -608,7 +521,7 @@ function abort(what) {
608
521
  // allows this in the wasm spec.
609
522
 
610
523
  // Suppress closure compiler warning here. Closure compiler's builtin extern
611
- // defintion for WebAssembly.RuntimeError claims it takes no arguments even
524
+ // definition for WebAssembly.RuntimeError claims it takes no arguments even
612
525
  // though it can.
613
526
  // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed.
614
527
  /** @suppress {checkTypes} */
@@ -639,28 +552,33 @@ var isDataURI = (filename) => filename.startsWith(dataURIPrefix);
639
552
  */
640
553
  var isFileURI = (filename) => filename.startsWith('file://');
641
554
  // end include: URIUtils.js
642
- function createExportWrapper(name) {
643
- return function() {
555
+ function createExportWrapper(name, nargs) {
556
+ return (...args) => {
644
557
  assert(runtimeInitialized, `native function \`${name}\` called before runtime initialization`);
645
558
  var f = wasmExports[name];
646
559
  assert(f, `exported native function \`${name}\` not found`);
647
- return f.apply(null, arguments);
560
+ // Only assert for too many arguments. Too few can be valid since the missing arguments will be zero filled.
561
+ assert(args.length <= nargs, `native function \`${name}\` called with ${args.length} args but expects ${nargs}`);
562
+ return f(...args);
648
563
  };
649
564
  }
650
565
 
651
566
  // include: runtime_exceptions.js
652
567
  // end include: runtime_exceptions.js
653
- var wasmBinaryFile;
654
- if (Module['locateFile']) {
655
- wasmBinaryFile = 'wa-sqlite.node.wasm';
656
- if (!isDataURI(wasmBinaryFile)) {
657
- wasmBinaryFile = locateFile(wasmBinaryFile);
568
+ function findWasmBinary() {
569
+ if (Module['locateFile']) {
570
+ var f = 'wa-sqlite.node.wasm';
571
+ if (!isDataURI(f)) {
572
+ return locateFile(f);
573
+ }
574
+ return f;
658
575
  }
659
- } else {
660
576
  // Use bundler-friendly `new URL(..., import.meta.url)` pattern; works in browsers too.
661
- wasmBinaryFile = new URL('wa-sqlite.node.wasm', import.meta.url).href;
577
+ return new URL('wa-sqlite.node.wasm', import.meta.url).href;
662
578
  }
663
579
 
580
+ var wasmBinaryFile;
581
+
664
582
  function getBinarySync(file) {
665
583
  if (file == wasmBinaryFile && wasmBinary) {
666
584
  return new Uint8Array(wasmBinary);
@@ -668,26 +586,19 @@ function getBinarySync(file) {
668
586
  if (readBinary) {
669
587
  return readBinary(file);
670
588
  }
671
- throw "both async and sync fetching of the wasm failed";
589
+ throw 'both async and sync fetching of the wasm failed';
672
590
  }
673
591
 
674
592
  function getBinaryPromise(binaryFile) {
675
- // If we don't have the binary yet, try to load it asynchronously.
676
- // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url.
677
- // See https://github.com/github/fetch/pull/92#issuecomment-140665932
678
- // Cordova or Electron apps are typically loaded from a file:// url.
679
- // So use fetch if it is available and the url is not a file, otherwise fall back to XHR.
593
+ // If we don't have the binary yet, load it asynchronously using readAsync.
680
594
  if (!wasmBinary
681
- && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {
682
- if (typeof fetch == 'function'
683
- ) {
684
- return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => {
685
- if (!response['ok']) {
686
- throw "failed to load wasm binary file at '" + binaryFile + "'";
687
- }
688
- return response['arrayBuffer']();
689
- }).catch(() => getBinarySync(binaryFile));
690
- }
595
+ ) {
596
+ // Fetch the binary using readAsync
597
+ return readAsync(binaryFile).then(
598
+ (response) => new Uint8Array(/** @type{!ArrayBuffer} */(response)),
599
+ // Fall back to getBinarySync if readAsync fails
600
+ () => getBinarySync(binaryFile)
601
+ );
691
602
  }
692
603
 
693
604
  // Otherwise, getBinarySync should be able to get it synchronously
@@ -697,8 +608,6 @@ function getBinaryPromise(binaryFile) {
697
608
  function instantiateArrayBuffer(binaryFile, imports, receiver) {
698
609
  return getBinaryPromise(binaryFile).then((binary) => {
699
610
  return WebAssembly.instantiate(binary, imports);
700
- }).then((instance) => {
701
- return instance;
702
611
  }).then(receiver, (reason) => {
703
612
  err(`failed to asynchronously prepare wasm: ${reason}`);
704
613
 
@@ -744,14 +653,17 @@ function instantiateAsync(binary, binaryFile, imports, callback) {
744
653
  return instantiateArrayBuffer(binaryFile, imports, callback);
745
654
  }
746
655
 
747
- // Create the wasm instance.
748
- // Receives the wasm imports, returns the exports.
749
- function createWasm() {
656
+ function getWasmImports() {
750
657
  // prepare imports
751
- var info = {
658
+ return {
752
659
  'env': wasmImports,
753
660
  'wasi_snapshot_preview1': wasmImports,
754
- };
661
+ }
662
+ }
663
+
664
+ // Create the wasm instance.
665
+ // Receives the wasm imports, returns the exports.
666
+ function createWasm() {
755
667
  // Load the wasm module and create an instance of using native support in the JS engine.
756
668
  // handle a generated wasm instance, receiving its exports and
757
669
  // performing other necessary setup
@@ -763,16 +675,12 @@ function createWasm() {
763
675
 
764
676
  wasmMemory = wasmExports['memory'];
765
677
 
766
- assert(wasmMemory, "memory not found in wasm exports");
767
- // This assertion doesn't hold when emscripten is run in --post-link
768
- // mode.
769
- // TODO(sbc): Read INITIAL_MEMORY out of the wasm file in post-link mode.
770
- //assert(wasmMemory.buffer.byteLength === 16777216);
678
+ assert(wasmMemory, 'memory not found in wasm exports');
771
679
  updateMemoryViews();
772
680
 
773
681
  wasmTable = wasmExports['__indirect_function_table'];
774
682
 
775
- assert(wasmTable, "table not found in wasm exports");
683
+ assert(wasmTable, 'table not found in wasm exports');
776
684
 
777
685
  addOnInit(wasmExports['__wasm_call_ctors']);
778
686
 
@@ -797,6 +705,8 @@ function createWasm() {
797
705
  receiveInstance(result['instance']);
798
706
  }
799
707
 
708
+ var info = getWasmImports();
709
+
800
710
  // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback
801
711
  // to manually instantiate the Wasm module themselves. This allows pages to
802
712
  // run the instantiation parallel to any other async startup actions they are
@@ -804,7 +714,6 @@ function createWasm() {
804
714
  // Also pthreads and wasm workers initialize the wasm instance through this
805
715
  // path.
806
716
  if (Module['instantiateWasm']) {
807
-
808
717
  try {
809
718
  return Module['instantiateWasm'](info, receiveInstance);
810
719
  } catch(e) {
@@ -814,6 +723,8 @@ function createWasm() {
814
723
  }
815
724
  }
816
725
 
726
+ wasmBinaryFile ??= findWasmBinary();
727
+
817
728
  // If instantiation fails, reject the module ready promise.
818
729
  instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject);
819
730
  return {}; // no exports yet; we'll fill them in later
@@ -824,12 +735,24 @@ var tempDouble;
824
735
  var tempI64;
825
736
 
826
737
  // include: runtime_debug.js
827
- function legacyModuleProp(prop, newName, incomming=true) {
738
+ // Endianness check
739
+ (() => {
740
+ var h16 = new Int16Array(1);
741
+ var h8 = new Int8Array(h16.buffer);
742
+ h16[0] = 0x6373;
743
+ if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)';
744
+ })();
745
+
746
+ if (Module['ENVIRONMENT']) {
747
+ throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)');
748
+ }
749
+
750
+ function legacyModuleProp(prop, newName, incoming=true) {
828
751
  if (!Object.getOwnPropertyDescriptor(Module, prop)) {
829
752
  Object.defineProperty(Module, prop, {
830
753
  configurable: true,
831
754
  get() {
832
- let extra = incomming ? ' (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)' : '';
755
+ let extra = incoming ? ' (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)' : '';
833
756
  abort(`\`Module.${prop}\` has been replaced by \`${newName}\`` + extra);
834
757
 
835
758
  }
@@ -856,46 +779,52 @@ function isExportedByForceFilesystem(name) {
856
779
  name === 'removeRunDependency';
857
780
  }
858
781
 
859
- function missingGlobal(sym, msg) {
860
- if (typeof globalThis !== 'undefined') {
782
+ /**
783
+ * Intercept access to a global symbol. This enables us to give informative
784
+ * warnings/errors when folks attempt to use symbols they did not include in
785
+ * their build, or no symbols that no longer exist.
786
+ */
787
+ function hookGlobalSymbolAccess(sym, func) {
788
+ if (typeof globalThis != 'undefined' && !Object.getOwnPropertyDescriptor(globalThis, sym)) {
861
789
  Object.defineProperty(globalThis, sym, {
862
790
  configurable: true,
863
791
  get() {
864
- warnOnce(`\`${sym}\` is not longer defined by emscripten. ${msg}`);
792
+ func();
865
793
  return undefined;
866
794
  }
867
795
  });
868
796
  }
869
797
  }
870
798
 
799
+ function missingGlobal(sym, msg) {
800
+ hookGlobalSymbolAccess(sym, () => {
801
+ warnOnce(`\`${sym}\` is not longer defined by emscripten. ${msg}`);
802
+ });
803
+ }
804
+
871
805
  missingGlobal('buffer', 'Please use HEAP8.buffer or wasmMemory.buffer');
872
806
  missingGlobal('asm', 'Please use wasmExports instead');
873
807
 
874
808
  function missingLibrarySymbol(sym) {
875
- if (typeof globalThis !== 'undefined' && !Object.getOwnPropertyDescriptor(globalThis, sym)) {
876
- Object.defineProperty(globalThis, sym, {
877
- configurable: true,
878
- get() {
879
- // Can't `abort()` here because it would break code that does runtime
880
- // checks. e.g. `if (typeof SDL === 'undefined')`.
881
- var msg = `\`${sym}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`;
882
- // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE requires the name as it appears in
883
- // library.js, which means $name for a JS name with no prefix, or name
884
- // for a JS name like _name.
885
- var librarySymbol = sym;
886
- if (!librarySymbol.startsWith('_')) {
887
- librarySymbol = '$' + sym;
888
- }
889
- msg += ` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${librarySymbol}')`;
890
- if (isExportedByForceFilesystem(sym)) {
891
- msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you';
892
- }
893
- warnOnce(msg);
894
- return undefined;
895
- }
896
- });
897
- }
898
- // Any symbol that is not included from the JS libary is also (by definition)
809
+ hookGlobalSymbolAccess(sym, () => {
810
+ // Can't `abort()` here because it would break code that does runtime
811
+ // checks. e.g. `if (typeof SDL === 'undefined')`.
812
+ var msg = `\`${sym}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`;
813
+ // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE requires the name as it appears in
814
+ // library.js, which means $name for a JS name with no prefix, or name
815
+ // for a JS name like _name.
816
+ var librarySymbol = sym;
817
+ if (!librarySymbol.startsWith('_')) {
818
+ librarySymbol = '$' + sym;
819
+ }
820
+ msg += ` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${librarySymbol}')`;
821
+ if (isExportedByForceFilesystem(sym)) {
822
+ msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you';
823
+ }
824
+ warnOnce(msg);
825
+ });
826
+
827
+ // Any symbol that is not included from the JS library is also (by definition)
899
828
  // not exported on the Module object.
900
829
  unexportedRuntimeSymbol(sym);
901
830
  }
@@ -916,21 +845,22 @@ function unexportedRuntimeSymbol(sym) {
916
845
  }
917
846
 
918
847
  // Used by XXXXX_DEBUG settings to output debug messages.
919
- function dbg(text) {
848
+ function dbg(...args) {
920
849
  // TODO(sbc): Make this configurable somehow. Its not always convenient for
921
850
  // logging to show up as warnings.
922
- console.warn.apply(console, arguments);
851
+ console.warn(...args);
923
852
  }
924
853
  // end include: runtime_debug.js
925
854
  // === Body ===
926
-
927
855
  // end include: preamble.js
928
856
 
929
- /** @constructor */
930
- function ExitStatus(status) {
931
- this.name = 'ExitStatus';
932
- this.message = `Program terminated with exit(${status})`;
933
- this.status = status;
857
+
858
+ class ExitStatus {
859
+ name = 'ExitStatus';
860
+ constructor(status) {
861
+ this.message = `Program terminated with exit(${status})`;
862
+ this.status = status;
863
+ }
934
864
  }
935
865
 
936
866
  var callRuntimeCallbacks = (callbacks) => {
@@ -948,8 +878,8 @@ function dbg(text) {
948
878
  function getValue(ptr, type = 'i8') {
949
879
  if (type.endsWith('*')) type = '*';
950
880
  switch (type) {
951
- case 'i1': return HEAP8[((ptr)>>0)];
952
- case 'i8': return HEAP8[((ptr)>>0)];
881
+ case 'i1': return HEAP8[ptr];
882
+ case 'i8': return HEAP8[ptr];
953
883
  case 'i16': return HEAP16[((ptr)>>1)];
954
884
  case 'i32': return HEAP32[((ptr)>>2)];
955
885
  case 'i64': abort('to do getValue(i64) use WASM_BIGINT');
@@ -978,8 +908,8 @@ function dbg(text) {
978
908
  function setValue(ptr, value, type = 'i8') {
979
909
  if (type.endsWith('*')) type = '*';
980
910
  switch (type) {
981
- case 'i1': HEAP8[((ptr)>>0)] = value; break;
982
- case 'i8': HEAP8[((ptr)>>0)] = value; break;
911
+ case 'i1': HEAP8[ptr] = value; break;
912
+ case 'i8': HEAP8[ptr] = value; break;
983
913
  case 'i16': HEAP16[((ptr)>>1)] = value; break;
984
914
  case 'i32': HEAP32[((ptr)>>2)] = value; break;
985
915
  case 'i64': abort('to do setValue(i64) use WASM_BIGINT');
@@ -990,6 +920,10 @@ function dbg(text) {
990
920
  }
991
921
  }
992
922
 
923
+ var stackRestore = (val) => __emscripten_stack_restore(val);
924
+
925
+ var stackSave = () => _emscripten_stack_get_current();
926
+
993
927
  var warnOnce = (text) => {
994
928
  warnOnce.shown ||= {};
995
929
  if (!warnOnce.shown[text]) {
@@ -999,25 +933,25 @@ function dbg(text) {
999
933
  }
1000
934
  };
1001
935
 
1002
- var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined;
936
+ var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder() : undefined;
1003
937
 
1004
938
  /**
1005
939
  * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given
1006
940
  * array that contains uint8 values, returns a copy of that string as a
1007
941
  * Javascript String object.
1008
942
  * heapOrArray is either a regular array, or a JavaScript typed array view.
1009
- * @param {number} idx
943
+ * @param {number=} idx
1010
944
  * @param {number=} maxBytesToRead
1011
945
  * @return {string}
1012
946
  */
1013
- var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
947
+ var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => {
1014
948
  var endIdx = idx + maxBytesToRead;
1015
949
  var endPtr = idx;
1016
950
  // TextDecoder needs to know the byte length in advance, it doesn't stop on
1017
951
  // null terminator by itself. Also, use the length info to avoid running tiny
1018
952
  // strings through TextDecoder, since .subarray() allocates garbage.
1019
953
  // (As a tiny code save trick, compare endPtr against endIdx using a negation,
1020
- // so that undefined means Infinity)
954
+ // so that undefined/NaN means Infinity)
1021
955
  while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;
1022
956
 
1023
957
  if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
@@ -1072,9 +1006,8 @@ function dbg(text) {
1072
1006
  assert(typeof ptr == 'number', `UTF8ToString expects a number (got ${typeof ptr})`);
1073
1007
  return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';
1074
1008
  };
1075
- var ___assert_fail = (condition, filename, line, func) => {
1009
+ var ___assert_fail = (condition, filename, line, func) =>
1076
1010
  abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']);
1077
- };
1078
1011
 
1079
1012
  var PATH = {
1080
1013
  isAbs:(path) => path.charAt(0) === '/',
@@ -1141,10 +1074,7 @@ function dbg(text) {
1141
1074
  if (lastSlash === -1) return path;
1142
1075
  return path.substr(lastSlash+1);
1143
1076
  },
1144
- join:function() {
1145
- var paths = Array.prototype.slice.call(arguments);
1146
- return PATH.normalize(paths.join('/'));
1147
- },
1077
+ join:(...paths) => PATH.normalize(paths.join('/')),
1148
1078
  join2:(l, r) => PATH.normalize(l + '/' + r),
1149
1079
  };
1150
1080
 
@@ -1174,7 +1104,7 @@ function dbg(text) {
1174
1104
  }
1175
1105
  }
1176
1106
  // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096
1177
- abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };");
1107
+ abort('no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };');
1178
1108
  };
1179
1109
  var randomFill = (view) => {
1180
1110
  // Lazily init on the first invocation.
@@ -1184,11 +1114,11 @@ function dbg(text) {
1184
1114
 
1185
1115
 
1186
1116
  var PATH_FS = {
1187
- resolve:function() {
1117
+ resolve:(...args) => {
1188
1118
  var resolvedPath = '',
1189
1119
  resolvedAbsolute = false;
1190
- for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
1191
- var path = (i >= 0) ? arguments[i] : FS.cwd();
1120
+ for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {
1121
+ var path = (i >= 0) ? args[i] : FS.cwd();
1192
1122
  // Skip empty and invalid entries
1193
1123
  if (typeof path != 'string') {
1194
1124
  throw new TypeError('Arguments to path.resolve must be strings');
@@ -1336,34 +1266,20 @@ function dbg(text) {
1336
1266
  var fd = process.stdin.fd;
1337
1267
 
1338
1268
  try {
1339
- bytesRead = fs.readSync(fd, buf);
1269
+ bytesRead = fs.readSync(fd, buf, 0, BUFSIZE);
1340
1270
  } catch(e) {
1341
- // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes,
1342
- // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0.
1271
+ // Cross-platform differences: on Windows, reading EOF throws an
1272
+ // exception, but on other OSes, reading EOF returns 0. Uniformize
1273
+ // behavior by treating the EOF exception to return 0.
1343
1274
  if (e.toString().includes('EOF')) bytesRead = 0;
1344
1275
  else throw e;
1345
1276
  }
1346
1277
 
1347
1278
  if (bytesRead > 0) {
1348
1279
  result = buf.slice(0, bytesRead).toString('utf-8');
1349
- } else {
1350
- result = null;
1351
1280
  }
1352
1281
  } else
1353
- if (typeof window != 'undefined' &&
1354
- typeof window.prompt == 'function') {
1355
- // Browser.
1356
- result = window.prompt('Input: '); // returns null on cancel
1357
- if (result !== null) {
1358
- result += '\n';
1359
- }
1360
- } else if (typeof readline == 'function') {
1361
- // Command line.
1362
- result = readline();
1363
- if (result !== null) {
1364
- result += '\n';
1365
- }
1366
- }
1282
+ {}
1367
1283
  if (!result) {
1368
1284
  return null;
1369
1285
  }
@@ -1461,7 +1377,7 @@ function dbg(text) {
1461
1377
  },
1462
1378
  put_char(tty, val) {
1463
1379
  if (val === null || val === 10) {
1464
- out(UTF8ArrayToString(tty.output, 0));
1380
+ out(UTF8ArrayToString(tty.output));
1465
1381
  tty.output = [];
1466
1382
  } else {
1467
1383
  if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle.
@@ -1469,7 +1385,7 @@ function dbg(text) {
1469
1385
  },
1470
1386
  fsync(tty) {
1471
1387
  if (tty.output && tty.output.length > 0) {
1472
- out(UTF8ArrayToString(tty.output, 0));
1388
+ out(UTF8ArrayToString(tty.output));
1473
1389
  tty.output = [];
1474
1390
  }
1475
1391
  },
@@ -1498,7 +1414,7 @@ function dbg(text) {
1498
1414
  default_tty1_ops:{
1499
1415
  put_char(tty, val) {
1500
1416
  if (val === null || val === 10) {
1501
- err(UTF8ArrayToString(tty.output, 0));
1417
+ err(UTF8ArrayToString(tty.output));
1502
1418
  tty.output = [];
1503
1419
  } else {
1504
1420
  if (val != 0) tty.output.push(val);
@@ -1506,7 +1422,7 @@ function dbg(text) {
1506
1422
  },
1507
1423
  fsync(tty) {
1508
1424
  if (tty.output && tty.output.length > 0) {
1509
- err(UTF8ArrayToString(tty.output, 0));
1425
+ err(UTF8ArrayToString(tty.output));
1510
1426
  tty.output = [];
1511
1427
  }
1512
1428
  },
@@ -1516,7 +1432,6 @@ function dbg(text) {
1516
1432
 
1517
1433
  var zeroMemory = (address, size) => {
1518
1434
  HEAPU8.fill(0, address, address + size);
1519
- return address;
1520
1435
  };
1521
1436
 
1522
1437
  var alignMemory = (size, alignment) => {
@@ -1526,13 +1441,13 @@ function dbg(text) {
1526
1441
  var mmapAlloc = (size) => {
1527
1442
  size = alignMemory(size, 65536);
1528
1443
  var ptr = _emscripten_builtin_memalign(65536, size);
1529
- if (!ptr) return 0;
1530
- return zeroMemory(ptr, size);
1444
+ if (ptr) zeroMemory(ptr, size);
1445
+ return ptr;
1531
1446
  };
1532
1447
  var MEMFS = {
1533
1448
  ops_table:null,
1534
1449
  mount(mount) {
1535
- return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
1450
+ return MEMFS.createNode(null, '/', 16895, 0);
1536
1451
  },
1537
1452
  createNode(parent, name, mode, dev) {
1538
1453
  if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
@@ -1687,7 +1602,7 @@ function dbg(text) {
1687
1602
  }
1688
1603
  },
1689
1604
  lookup(parent, name) {
1690
- throw FS.genericErrors[44];
1605
+ throw new FS.ErrnoError(44);
1691
1606
  },
1692
1607
  mknod(parent, name, mode, dev) {
1693
1608
  return MEMFS.createNode(parent, name, mode, dev);
@@ -1712,7 +1627,6 @@ function dbg(text) {
1712
1627
  old_node.name = new_name;
1713
1628
  new_dir.contents[new_name] = old_node;
1714
1629
  new_dir.timestamp = old_node.parent.timestamp;
1715
- old_node.parent = new_dir;
1716
1630
  },
1717
1631
  unlink(parent, name) {
1718
1632
  delete parent.contents[name];
@@ -1734,7 +1648,7 @@ function dbg(text) {
1734
1648
  return entries;
1735
1649
  },
1736
1650
  symlink(parent, newname, oldpath) {
1737
- var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0);
1651
+ var node = MEMFS.createNode(parent, newname, 0o777 | 40960, 0);
1738
1652
  node.link = oldpath;
1739
1653
  return node;
1740
1654
  },
@@ -1821,26 +1735,28 @@ function dbg(text) {
1821
1735
  var allocated;
1822
1736
  var contents = stream.node.contents;
1823
1737
  // Only make a new copy when MAP_PRIVATE is specified.
1824
- if (!(flags & 2) && contents.buffer === HEAP8.buffer) {
1738
+ if (!(flags & 2) && contents && contents.buffer === HEAP8.buffer) {
1825
1739
  // We can't emulate MAP_SHARED when the file is not backed by the
1826
1740
  // buffer we're mapping to (e.g. the HEAP buffer).
1827
1741
  allocated = false;
1828
1742
  ptr = contents.byteOffset;
1829
1743
  } else {
1830
- // Try to avoid unnecessary slices.
1831
- if (position > 0 || position + length < contents.length) {
1832
- if (contents.subarray) {
1833
- contents = contents.subarray(position, position + length);
1834
- } else {
1835
- contents = Array.prototype.slice.call(contents, position, position + length);
1836
- }
1837
- }
1838
1744
  allocated = true;
1839
1745
  ptr = mmapAlloc(length);
1840
1746
  if (!ptr) {
1841
1747
  throw new FS.ErrnoError(48);
1842
1748
  }
1843
- HEAP8.set(contents, ptr);
1749
+ if (contents) {
1750
+ // Try to avoid unnecessary slices.
1751
+ if (position > 0 || position + length < contents.length) {
1752
+ if (contents.subarray) {
1753
+ contents = contents.subarray(position, position + length);
1754
+ } else {
1755
+ contents = Array.prototype.slice.call(contents, position, position + length);
1756
+ }
1757
+ }
1758
+ HEAP8.set(contents, ptr);
1759
+ }
1844
1760
  }
1845
1761
  return { ptr, allocated };
1846
1762
  },
@@ -1855,17 +1771,20 @@ function dbg(text) {
1855
1771
  /** @param {boolean=} noRunDep */
1856
1772
  var asyncLoad = (url, onload, onerror, noRunDep) => {
1857
1773
  var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : '';
1858
- readAsync(url, (arrayBuffer) => {
1859
- assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`);
1860
- onload(new Uint8Array(arrayBuffer));
1861
- if (dep) removeRunDependency(dep);
1862
- }, (event) => {
1863
- if (onerror) {
1864
- onerror();
1865
- } else {
1866
- throw `Loading data file "${url}" failed.`;
1774
+ readAsync(url).then(
1775
+ (arrayBuffer) => {
1776
+ assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`);
1777
+ onload(new Uint8Array(arrayBuffer));
1778
+ if (dep) removeRunDependency(dep);
1779
+ },
1780
+ (err) => {
1781
+ if (onerror) {
1782
+ onerror();
1783
+ } else {
1784
+ throw `Loading data file "${url}" failed.`;
1785
+ }
1867
1786
  }
1868
- });
1787
+ );
1869
1788
  if (dep) addRunDependency(dep);
1870
1789
  };
1871
1790
 
@@ -1913,7 +1832,7 @@ function dbg(text) {
1913
1832
  }
1914
1833
  addRunDependency(dep);
1915
1834
  if (typeof url == 'string') {
1916
- asyncLoad(url, (byteArray) => processData(byteArray), onerror);
1835
+ asyncLoad(url, processData, onerror);
1917
1836
  } else {
1918
1837
  processData(url);
1919
1838
  }
@@ -1945,127 +1864,9 @@ function dbg(text) {
1945
1864
 
1946
1865
 
1947
1866
 
1948
- var ERRNO_MESSAGES = {
1949
- 0:"Success",
1950
- 1:"Arg list too long",
1951
- 2:"Permission denied",
1952
- 3:"Address already in use",
1953
- 4:"Address not available",
1954
- 5:"Address family not supported by protocol family",
1955
- 6:"No more processes",
1956
- 7:"Socket already connected",
1957
- 8:"Bad file number",
1958
- 9:"Trying to read unreadable message",
1959
- 10:"Mount device busy",
1960
- 11:"Operation canceled",
1961
- 12:"No children",
1962
- 13:"Connection aborted",
1963
- 14:"Connection refused",
1964
- 15:"Connection reset by peer",
1965
- 16:"File locking deadlock error",
1966
- 17:"Destination address required",
1967
- 18:"Math arg out of domain of func",
1968
- 19:"Quota exceeded",
1969
- 20:"File exists",
1970
- 21:"Bad address",
1971
- 22:"File too large",
1972
- 23:"Host is unreachable",
1973
- 24:"Identifier removed",
1974
- 25:"Illegal byte sequence",
1975
- 26:"Connection already in progress",
1976
- 27:"Interrupted system call",
1977
- 28:"Invalid argument",
1978
- 29:"I/O error",
1979
- 30:"Socket is already connected",
1980
- 31:"Is a directory",
1981
- 32:"Too many symbolic links",
1982
- 33:"Too many open files",
1983
- 34:"Too many links",
1984
- 35:"Message too long",
1985
- 36:"Multihop attempted",
1986
- 37:"File or path name too long",
1987
- 38:"Network interface is not configured",
1988
- 39:"Connection reset by network",
1989
- 40:"Network is unreachable",
1990
- 41:"Too many open files in system",
1991
- 42:"No buffer space available",
1992
- 43:"No such device",
1993
- 44:"No such file or directory",
1994
- 45:"Exec format error",
1995
- 46:"No record locks available",
1996
- 47:"The link has been severed",
1997
- 48:"Not enough core",
1998
- 49:"No message of desired type",
1999
- 50:"Protocol not available",
2000
- 51:"No space left on device",
2001
- 52:"Function not implemented",
2002
- 53:"Socket is not connected",
2003
- 54:"Not a directory",
2004
- 55:"Directory not empty",
2005
- 56:"State not recoverable",
2006
- 57:"Socket operation on non-socket",
2007
- 59:"Not a typewriter",
2008
- 60:"No such device or address",
2009
- 61:"Value too large for defined data type",
2010
- 62:"Previous owner died",
2011
- 63:"Not super-user",
2012
- 64:"Broken pipe",
2013
- 65:"Protocol error",
2014
- 66:"Unknown protocol",
2015
- 67:"Protocol wrong type for socket",
2016
- 68:"Math result not representable",
2017
- 69:"Read only file system",
2018
- 70:"Illegal seek",
2019
- 71:"No such process",
2020
- 72:"Stale file handle",
2021
- 73:"Connection timed out",
2022
- 74:"Text file busy",
2023
- 75:"Cross-device link",
2024
- 100:"Device not a stream",
2025
- 101:"Bad font file fmt",
2026
- 102:"Invalid slot",
2027
- 103:"Invalid request code",
2028
- 104:"No anode",
2029
- 105:"Block device required",
2030
- 106:"Channel number out of range",
2031
- 107:"Level 3 halted",
2032
- 108:"Level 3 reset",
2033
- 109:"Link number out of range",
2034
- 110:"Protocol driver not attached",
2035
- 111:"No CSI structure available",
2036
- 112:"Level 2 halted",
2037
- 113:"Invalid exchange",
2038
- 114:"Invalid request descriptor",
2039
- 115:"Exchange full",
2040
- 116:"No data (for no delay io)",
2041
- 117:"Timer expired",
2042
- 118:"Out of streams resources",
2043
- 119:"Machine is not on the network",
2044
- 120:"Package not installed",
2045
- 121:"The object is remote",
2046
- 122:"Advertise error",
2047
- 123:"Srmount error",
2048
- 124:"Communication error on send",
2049
- 125:"Cross mount point (not really error)",
2050
- 126:"Given log. name not unique",
2051
- 127:"f.d. invalid for this operation",
2052
- 128:"Remote address changed",
2053
- 129:"Can access a needed shared lib",
2054
- 130:"Accessing a corrupted shared lib",
2055
- 131:".lib section in a.out corrupted",
2056
- 132:"Attempting to link in too many libs",
2057
- 133:"Attempting to exec a shared library",
2058
- 135:"Streams pipe error",
2059
- 136:"Too many users",
2060
- 137:"Socket type not supported",
2061
- 138:"Not supported",
2062
- 139:"Protocol family not supported",
2063
- 140:"Can't send after socket shutdown",
2064
- 141:"Too many references",
2065
- 142:"Host is down",
2066
- 148:"No medium (in tape drive)",
2067
- 156:"Level 2 not synchronized",
2068
- };
1867
+
1868
+
1869
+ var strError = (errno) => UTF8ToString(_strerror(errno));
2069
1870
 
2070
1871
  var ERRNO_CODES = {
2071
1872
  'EPERM': 63,
@@ -2190,20 +1991,6 @@ function dbg(text) {
2190
1991
  'EOWNERDEAD': 62,
2191
1992
  'ESTRPIPE': 135,
2192
1993
  };
2193
-
2194
- var demangle = (func) => {
2195
- warnOnce('warning: build with -sDEMANGLE_SUPPORT to link in libcxxabi demangling');
2196
- return func;
2197
- };
2198
- var demangleAll = (text) => {
2199
- var regex =
2200
- /\b_Z[\w\d_]+/g;
2201
- return text.replace(regex,
2202
- function(x) {
2203
- var y = demangle(x);
2204
- return x === y ? x : (y + ' [' + x + ']');
2205
- });
2206
- };
2207
1994
  var FS = {
2208
1995
  root:null,
2209
1996
  mounts:[],
@@ -2215,11 +2002,95 @@ function dbg(text) {
2215
2002
  currentPath:"/",
2216
2003
  initialized:false,
2217
2004
  ignorePermissions:true,
2218
- ErrnoError:null,
2219
- genericErrors:{
2220
- },
2005
+ ErrnoError:class extends Error {
2006
+ name = 'ErrnoError';
2007
+ // We set the `name` property to be able to identify `FS.ErrnoError`
2008
+ // - the `name` is a standard ECMA-262 property of error objects. Kind of good to have it anyway.
2009
+ // - when using PROXYFS, an error can come from an underlying FS
2010
+ // as different FS objects have their own FS.ErrnoError each,
2011
+ // the test `err instanceof FS.ErrnoError` won't detect an error coming from another filesystem, causing bugs.
2012
+ // we'll use the reliable test `err.name == "ErrnoError"` instead
2013
+ constructor(errno) {
2014
+ super(runtimeInitialized ? strError(errno) : '');
2015
+ this.errno = errno;
2016
+ for (var key in ERRNO_CODES) {
2017
+ if (ERRNO_CODES[key] === errno) {
2018
+ this.code = key;
2019
+ break;
2020
+ }
2021
+ }
2022
+ }
2023
+ },
2221
2024
  filesystems:null,
2222
2025
  syncFSRequests:0,
2026
+ readFiles:{
2027
+ },
2028
+ FSStream:class {
2029
+ shared = {};
2030
+ get object() {
2031
+ return this.node;
2032
+ }
2033
+ set object(val) {
2034
+ this.node = val;
2035
+ }
2036
+ get isRead() {
2037
+ return (this.flags & 2097155) !== 1;
2038
+ }
2039
+ get isWrite() {
2040
+ return (this.flags & 2097155) !== 0;
2041
+ }
2042
+ get isAppend() {
2043
+ return (this.flags & 1024);
2044
+ }
2045
+ get flags() {
2046
+ return this.shared.flags;
2047
+ }
2048
+ set flags(val) {
2049
+ this.shared.flags = val;
2050
+ }
2051
+ get position() {
2052
+ return this.shared.position;
2053
+ }
2054
+ set position(val) {
2055
+ this.shared.position = val;
2056
+ }
2057
+ },
2058
+ FSNode:class {
2059
+ node_ops = {};
2060
+ stream_ops = {};
2061
+ readMode = 292 | 73;
2062
+ writeMode = 146;
2063
+ mounted = null;
2064
+ constructor(parent, name, mode, rdev) {
2065
+ if (!parent) {
2066
+ parent = this; // root node sets parent to itself
2067
+ }
2068
+ this.parent = parent;
2069
+ this.mount = parent.mount;
2070
+ this.id = FS.nextInode++;
2071
+ this.name = name;
2072
+ this.mode = mode;
2073
+ this.rdev = rdev;
2074
+ }
2075
+ get read() {
2076
+ return (this.mode & this.readMode) === this.readMode;
2077
+ }
2078
+ set read(val) {
2079
+ val ? this.mode |= this.readMode : this.mode &= ~this.readMode;
2080
+ }
2081
+ get write() {
2082
+ return (this.mode & this.writeMode) === this.writeMode;
2083
+ }
2084
+ set write(val) {
2085
+ val ? this.mode |= this.writeMode : this.mode &= ~this.writeMode;
2086
+ }
2087
+ get isFolder() {
2088
+ return FS.isDir(this.mode);
2089
+ }
2090
+ get isDevice() {
2091
+ return FS.isChrdev(this.mode);
2092
+ }
2093
+ },
2223
2094
  lookupPath(path, opts = {}) {
2224
2095
  path = PATH_FS.resolve(path);
2225
2096
 
@@ -2322,7 +2193,7 @@ function dbg(text) {
2322
2193
  lookupNode(parent, name) {
2323
2194
  var errCode = FS.mayLookup(parent);
2324
2195
  if (errCode) {
2325
- throw new FS.ErrnoError(errCode, parent);
2196
+ throw new FS.ErrnoError(errCode);
2326
2197
  }
2327
2198
  var hash = FS.hashName(parent.id, name);
2328
2199
  for (var node = FS.nameTable[hash]; node; node = node.name_next) {
@@ -2394,14 +2265,16 @@ function dbg(text) {
2394
2265
  return 0;
2395
2266
  },
2396
2267
  mayLookup(dir) {
2268
+ if (!FS.isDir(dir.mode)) return 54;
2397
2269
  var errCode = FS.nodePermissions(dir, 'x');
2398
2270
  if (errCode) return errCode;
2399
2271
  if (!dir.node_ops.lookup) return 2;
2400
2272
  return 0;
2401
2273
  },
2402
- mayCreate(dir, name) {
2403
- try {
2404
- var node = FS.lookupNode(dir, name);
2274
+ mayCreate(dir, name) {
2275
+ var node
2276
+ try {
2277
+ node = FS.lookupNode(dir, name);
2405
2278
  return 20;
2406
2279
  } catch (e) {
2407
2280
  }
@@ -2464,44 +2337,8 @@ function dbg(text) {
2464
2337
  },
2465
2338
  getStream:(fd) => FS.streams[fd],
2466
2339
  createStream(stream, fd = -1) {
2467
- if (!FS.FSStream) {
2468
- FS.FSStream = /** @constructor */ function() {
2469
- this.shared = { };
2470
- };
2471
- FS.FSStream.prototype = {};
2472
- Object.defineProperties(FS.FSStream.prototype, {
2473
- object: {
2474
- /** @this {FS.FSStream} */
2475
- get() { return this.node; },
2476
- /** @this {FS.FSStream} */
2477
- set(val) { this.node = val; }
2478
- },
2479
- isRead: {
2480
- /** @this {FS.FSStream} */
2481
- get() { return (this.flags & 2097155) !== 1; }
2482
- },
2483
- isWrite: {
2484
- /** @this {FS.FSStream} */
2485
- get() { return (this.flags & 2097155) !== 0; }
2486
- },
2487
- isAppend: {
2488
- /** @this {FS.FSStream} */
2489
- get() { return (this.flags & 1024); }
2490
- },
2491
- flags: {
2492
- /** @this {FS.FSStream} */
2493
- get() { return this.shared.flags; },
2494
- /** @this {FS.FSStream} */
2495
- set(val) { this.shared.flags = val; },
2496
- },
2497
- position : {
2498
- /** @this {FS.FSStream} */
2499
- get() { return this.shared.position; },
2500
- /** @this {FS.FSStream} */
2501
- set(val) { this.shared.position = val; },
2502
- },
2503
- });
2504
- }
2340
+ assert(fd >= -1);
2341
+
2505
2342
  // clone it, so we can return an instance of FSStream
2506
2343
  stream = Object.assign(new FS.FSStream(), stream);
2507
2344
  if (fd == -1) {
@@ -2514,6 +2351,11 @@ function dbg(text) {
2514
2351
  closeStream(fd) {
2515
2352
  FS.streams[fd] = null;
2516
2353
  },
2354
+ dupStream(origStream, fd = -1) {
2355
+ var stream = FS.createStream(origStream, fd);
2356
+ stream.stream_ops?.dup?.(stream);
2357
+ return stream;
2358
+ },
2517
2359
  chrdev_stream_ops:{
2518
2360
  open(stream) {
2519
2361
  var device = FS.getDevice(stream.node.rdev);
@@ -2542,7 +2384,7 @@ function dbg(text) {
2542
2384
 
2543
2385
  mounts.push(m);
2544
2386
 
2545
- check.push.apply(check, m.mounts);
2387
+ check.push(...m.mounts);
2546
2388
  }
2547
2389
 
2548
2390
  return mounts;
@@ -2695,14 +2537,35 @@ function dbg(text) {
2695
2537
  }
2696
2538
  return parent.node_ops.mknod(parent, name, mode, dev);
2697
2539
  },
2698
- create(path, mode) {
2699
- mode = mode !== undefined ? mode : 438 /* 0666 */;
2540
+ statfs(path) {
2541
+
2542
+ // NOTE: None of the defaults here are true. We're just returning safe and
2543
+ // sane values.
2544
+ var rtn = {
2545
+ bsize: 4096,
2546
+ frsize: 4096,
2547
+ blocks: 1e6,
2548
+ bfree: 5e5,
2549
+ bavail: 5e5,
2550
+ files: FS.nextInode,
2551
+ ffree: FS.nextInode - 1,
2552
+ fsid: 42,
2553
+ flags: 2,
2554
+ namelen: 255,
2555
+ };
2556
+
2557
+ var parent = FS.lookupPath(path, {follow: true}).node;
2558
+ if (parent?.node_ops.statfs) {
2559
+ Object.assign(rtn, parent.node_ops.statfs(parent.mount.opts.root));
2560
+ }
2561
+ return rtn;
2562
+ },
2563
+ create(path, mode = 0o666) {
2700
2564
  mode &= 4095;
2701
2565
  mode |= 32768;
2702
2566
  return FS.mknod(path, mode, 0);
2703
2567
  },
2704
- mkdir(path, mode) {
2705
- mode = mode !== undefined ? mode : 511 /* 0777 */;
2568
+ mkdir(path, mode = 0o777) {
2706
2569
  mode &= 511 | 512;
2707
2570
  mode |= 16384;
2708
2571
  return FS.mknod(path, mode, 0);
@@ -2723,7 +2586,7 @@ function dbg(text) {
2723
2586
  mkdev(path, mode, dev) {
2724
2587
  if (typeof dev == 'undefined') {
2725
2588
  dev = mode;
2726
- mode = 438 /* 0666 */;
2589
+ mode = 0o666;
2727
2590
  }
2728
2591
  mode |= 8192;
2729
2592
  return FS.mknod(path, mode, dev);
@@ -2755,7 +2618,7 @@ function dbg(text) {
2755
2618
  // parents must exist
2756
2619
  var lookup, old_dir, new_dir;
2757
2620
 
2758
- // let the errors from non existant directories percolate up
2621
+ // let the errors from non existent directories percolate up
2759
2622
  lookup = FS.lookupPath(old_path, { parent: true });
2760
2623
  old_dir = lookup.node;
2761
2624
  lookup = FS.lookupPath(new_path, { parent: true });
@@ -2821,6 +2684,9 @@ function dbg(text) {
2821
2684
  // do the underlying fs rename
2822
2685
  try {
2823
2686
  old_dir.node_ops.rename(old_node, new_dir, new_name);
2687
+ // update old node (we do this here to avoid each backend
2688
+ // needing to)
2689
+ old_node.parent = new_dir;
2824
2690
  } catch (e) {
2825
2691
  throw e;
2826
2692
  } finally {
@@ -2888,7 +2754,7 @@ function dbg(text) {
2888
2754
  if (!link.node_ops.readlink) {
2889
2755
  throw new FS.ErrnoError(28);
2890
2756
  }
2891
- return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));
2757
+ return link.node_ops.readlink(link);
2892
2758
  },
2893
2759
  stat(path, dontFollow) {
2894
2760
  var lookup = FS.lookupPath(path, { follow: !dontFollow });
@@ -2993,12 +2859,11 @@ function dbg(text) {
2993
2859
  timestamp: Math.max(atime, mtime)
2994
2860
  });
2995
2861
  },
2996
- open(path, flags, mode) {
2862
+ open(path, flags, mode = 0o666) {
2997
2863
  if (path === "") {
2998
2864
  throw new FS.ErrnoError(44);
2999
2865
  }
3000
2866
  flags = typeof flags == 'string' ? FS_modeStringToFlags(flags) : flags;
3001
- mode = typeof mode == 'undefined' ? 438 /* 0666 */ : mode;
3002
2867
  if ((flags & 64)) {
3003
2868
  mode = (mode & 4095) | 32768;
3004
2869
  } else {
@@ -3076,7 +2941,6 @@ function dbg(text) {
3076
2941
  stream.stream_ops.open(stream);
3077
2942
  }
3078
2943
  if (Module['logReadFiles'] && !(flags & 1)) {
3079
- if (!FS.readFiles) FS.readFiles = {};
3080
2944
  if (!(path in FS.readFiles)) {
3081
2945
  FS.readFiles[path] = 1;
3082
2946
  }
@@ -3210,6 +3074,9 @@ function dbg(text) {
3210
3074
  if (!stream.stream_ops.mmap) {
3211
3075
  throw new FS.ErrnoError(43);
3212
3076
  }
3077
+ if (!length) {
3078
+ throw new FS.ErrnoError(28);
3079
+ }
3213
3080
  return stream.stream_ops.mmap(stream, length, position, prot, flags);
3214
3081
  },
3215
3082
  msync(stream, buffer, offset, length, mmapFlags) {
@@ -3219,7 +3086,6 @@ function dbg(text) {
3219
3086
  }
3220
3087
  return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
3221
3088
  },
3222
- munmap:(stream) => 0,
3223
3089
  ioctl(stream, cmd, arg) {
3224
3090
  if (!stream.stream_ops.ioctl) {
3225
3091
  throw new FS.ErrnoError(59);
@@ -3239,7 +3105,7 @@ function dbg(text) {
3239
3105
  var buf = new Uint8Array(length);
3240
3106
  FS.read(stream, buf, 0, length, 0);
3241
3107
  if (opts.encoding === 'utf8') {
3242
- ret = UTF8ArrayToString(buf, 0);
3108
+ ret = UTF8ArrayToString(buf);
3243
3109
  } else if (opts.encoding === 'binary') {
3244
3110
  ret = buf;
3245
3111
  }
@@ -3287,6 +3153,7 @@ function dbg(text) {
3287
3153
  FS.registerDevice(FS.makedev(1, 3), {
3288
3154
  read: () => 0,
3289
3155
  write: (stream, buffer, offset, length, pos) => length,
3156
+ llseek: () => 0,
3290
3157
  });
3291
3158
  FS.mkdev('/dev/null', FS.makedev(1, 3));
3292
3159
  // setup /dev/tty and /dev/tty1
@@ -3320,7 +3187,7 @@ function dbg(text) {
3320
3187
  FS.mkdir('/proc/self/fd');
3321
3188
  FS.mount({
3322
3189
  mount() {
3323
- var node = FS.createNode(proc_self, 'fd', 16384 | 511 /* 0777 */, 73);
3190
+ var node = FS.createNode(proc_self, 'fd', 16895, 73);
3324
3191
  node.node_ops = {
3325
3192
  lookup(parent, name) {
3326
3193
  var fd = +name;
@@ -3338,7 +3205,7 @@ function dbg(text) {
3338
3205
  }
3339
3206
  }, {}, '/proc/self/fd');
3340
3207
  },
3341
- createStandardStreams() {
3208
+ createStandardStreams(input, output, error) {
3342
3209
  // TODO deprecate the old functionality of a single
3343
3210
  // input / output callback and that utilizes FS.createDevice
3344
3211
  // and instead require a unique set of stream ops
@@ -3347,18 +3214,18 @@ function dbg(text) {
3347
3214
  // default tty devices. however, if the standard streams
3348
3215
  // have been overwritten we create a unique device for
3349
3216
  // them instead.
3350
- if (Module['stdin']) {
3351
- FS.createDevice('/dev', 'stdin', Module['stdin']);
3217
+ if (input) {
3218
+ FS.createDevice('/dev', 'stdin', input);
3352
3219
  } else {
3353
3220
  FS.symlink('/dev/tty', '/dev/stdin');
3354
3221
  }
3355
- if (Module['stdout']) {
3356
- FS.createDevice('/dev', 'stdout', null, Module['stdout']);
3222
+ if (output) {
3223
+ FS.createDevice('/dev', 'stdout', null, output);
3357
3224
  } else {
3358
3225
  FS.symlink('/dev/tty', '/dev/stdout');
3359
3226
  }
3360
- if (Module['stderr']) {
3361
- FS.createDevice('/dev', 'stderr', null, Module['stderr']);
3227
+ if (error) {
3228
+ FS.createDevice('/dev', 'stderr', null, error);
3362
3229
  } else {
3363
3230
  FS.symlink('/dev/tty1', '/dev/stderr');
3364
3231
  }
@@ -3371,48 +3238,7 @@ function dbg(text) {
3371
3238
  assert(stdout.fd === 1, `invalid handle for stdout (${stdout.fd})`);
3372
3239
  assert(stderr.fd === 2, `invalid handle for stderr (${stderr.fd})`);
3373
3240
  },
3374
- ensureErrnoError() {
3375
- if (FS.ErrnoError) return;
3376
- FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) {
3377
- // We set the `name` property to be able to identify `FS.ErrnoError`
3378
- // - the `name` is a standard ECMA-262 property of error objects. Kind of good to have it anyway.
3379
- // - when using PROXYFS, an error can come from an underlying FS
3380
- // as different FS objects have their own FS.ErrnoError each,
3381
- // the test `err instanceof FS.ErrnoError` won't detect an error coming from another filesystem, causing bugs.
3382
- // we'll use the reliable test `err.name == "ErrnoError"` instead
3383
- this.name = 'ErrnoError';
3384
- this.node = node;
3385
- this.setErrno = /** @this{Object} */ function(errno) {
3386
- this.errno = errno;
3387
- for (var key in ERRNO_CODES) {
3388
- if (ERRNO_CODES[key] === errno) {
3389
- this.code = key;
3390
- break;
3391
- }
3392
- }
3393
- };
3394
- this.setErrno(errno);
3395
- this.message = ERRNO_MESSAGES[errno];
3396
-
3397
- // Try to get a maximally helpful stack trace. On Node.js, getting Error.stack
3398
- // now ensures it shows what we want.
3399
- if (this.stack) {
3400
- // Define the stack property for Node.js 4, which otherwise errors on the next line.
3401
- Object.defineProperty(this, "stack", { value: (new Error).stack, writable: true });
3402
- this.stack = demangleAll(this.stack);
3403
- }
3404
- };
3405
- FS.ErrnoError.prototype = new Error();
3406
- FS.ErrnoError.prototype.constructor = FS.ErrnoError;
3407
- // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)
3408
- [44].forEach((code) => {
3409
- FS.genericErrors[code] = new FS.ErrnoError(code);
3410
- FS.genericErrors[code].stack = '<generic error, no stack>';
3411
- });
3412
- },
3413
3241
  staticInit() {
3414
- FS.ensureErrnoError();
3415
-
3416
3242
  FS.nameTable = new Array(4096);
3417
3243
 
3418
3244
  FS.mount(MEMFS, {}, '/');
@@ -3426,20 +3252,18 @@ function dbg(text) {
3426
3252
  };
3427
3253
  },
3428
3254
  init(input, output, error) {
3429
- assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');
3430
- FS.init.initialized = true;
3431
-
3432
- FS.ensureErrnoError();
3255
+ assert(!FS.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');
3256
+ FS.initialized = true;
3433
3257
 
3434
3258
  // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
3435
- Module['stdin'] = input || Module['stdin'];
3436
- Module['stdout'] = output || Module['stdout'];
3437
- Module['stderr'] = error || Module['stderr'];
3259
+ input ??= Module['stdin'];
3260
+ output ??= Module['stdout'];
3261
+ error ??= Module['stderr'];
3438
3262
 
3439
- FS.createStandardStreams();
3263
+ FS.createStandardStreams(input, output, error);
3440
3264
  },
3441
3265
  quit() {
3442
- FS.init.initialized = false;
3266
+ FS.initialized = false;
3443
3267
  // force-flush all streams, so we get musl std streams printed out
3444
3268
  _fflush(0);
3445
3269
  // close all of our streams
@@ -3532,7 +3356,7 @@ function dbg(text) {
3532
3356
  createDevice(parent, name, input, output) {
3533
3357
  var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name);
3534
3358
  var mode = FS_getMode(!!input, !!output);
3535
- if (!FS.createDevice.major) FS.createDevice.major = 64;
3359
+ FS.createDevice.major ??= 64;
3536
3360
  var dev = FS.makedev(FS.createDevice.major++, 0);
3537
3361
  // Create a fake device that a set of stream ops to emulate
3538
3362
  // the old behavior.
@@ -3587,122 +3411,111 @@ function dbg(text) {
3587
3411
  if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
3588
3412
  if (typeof XMLHttpRequest != 'undefined') {
3589
3413
  throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
3590
- } else if (read_) {
3591
- // Command-line.
3414
+ } else { // Command-line.
3592
3415
  try {
3593
- // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
3594
- // read() will try to parse UTF8.
3595
- obj.contents = intArrayFromString(read_(obj.url), true);
3416
+ obj.contents = readBinary(obj.url);
3596
3417
  obj.usedBytes = obj.contents.length;
3597
3418
  } catch (e) {
3598
3419
  throw new FS.ErrnoError(29);
3599
3420
  }
3600
- } else {
3601
- throw new Error('Cannot load without read() or XMLHttpRequest.');
3602
3421
  }
3603
3422
  },
3604
3423
  createLazyFile(parent, name, url, canRead, canWrite) {
3605
- // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
3606
- /** @constructor */
3607
- function LazyUint8Array() {
3608
- this.lengthKnown = false;
3609
- this.chunks = []; // Loaded chunks. Index is the chunk number
3610
- }
3611
- LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) {
3612
- if (idx > this.length-1 || idx < 0) {
3613
- return undefined;
3424
+ // Lazy chunked Uint8Array (implements get and length from Uint8Array).
3425
+ // Actual getting is abstracted away for eventual reuse.
3426
+ class LazyUint8Array {
3427
+ lengthKnown = false;
3428
+ chunks = []; // Loaded chunks. Index is the chunk number
3429
+ get(idx) {
3430
+ if (idx > this.length-1 || idx < 0) {
3431
+ return undefined;
3432
+ }
3433
+ var chunkOffset = idx % this.chunkSize;
3434
+ var chunkNum = (idx / this.chunkSize)|0;
3435
+ return this.getter(chunkNum)[chunkOffset];
3614
3436
  }
3615
- var chunkOffset = idx % this.chunkSize;
3616
- var chunkNum = (idx / this.chunkSize)|0;
3617
- return this.getter(chunkNum)[chunkOffset];
3618
- };
3619
- LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
3620
- this.getter = getter;
3621
- };
3622
- LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
3623
- // Find length
3624
- var xhr = new XMLHttpRequest();
3625
- xhr.open('HEAD', url, false);
3626
- xhr.send(null);
3627
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
3628
- var datalength = Number(xhr.getResponseHeader("Content-length"));
3629
- var header;
3630
- var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
3631
- var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
3632
-
3633
- var chunkSize = 1024*1024; // Chunk size in bytes
3634
-
3635
- if (!hasByteServing) chunkSize = datalength;
3636
-
3637
- // Function to get a range from the remote URL.
3638
- var doXHR = (from, to) => {
3639
- if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
3640
- if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
3641
-
3642
- // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
3437
+ setDataGetter(getter) {
3438
+ this.getter = getter;
3439
+ }
3440
+ cacheLength() {
3441
+ // Find length
3643
3442
  var xhr = new XMLHttpRequest();
3644
- xhr.open('GET', url, false);
3645
- if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
3443
+ xhr.open('HEAD', url, false);
3444
+ xhr.send(null);
3445
+ if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
3446
+ var datalength = Number(xhr.getResponseHeader("Content-length"));
3447
+ var header;
3448
+ var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
3449
+ var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
3450
+
3451
+ var chunkSize = 1024*1024; // Chunk size in bytes
3452
+
3453
+ if (!hasByteServing) chunkSize = datalength;
3454
+
3455
+ // Function to get a range from the remote URL.
3456
+ var doXHR = (from, to) => {
3457
+ if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
3458
+ if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
3646
3459
 
3647
- // Some hints to the browser that we want binary data.
3648
- xhr.responseType = 'arraybuffer';
3649
- if (xhr.overrideMimeType) {
3650
- xhr.overrideMimeType('text/plain; charset=x-user-defined');
3460
+ // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
3461
+ var xhr = new XMLHttpRequest();
3462
+ xhr.open('GET', url, false);
3463
+ if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
3464
+
3465
+ // Some hints to the browser that we want binary data.
3466
+ xhr.responseType = 'arraybuffer';
3467
+ if (xhr.overrideMimeType) {
3468
+ xhr.overrideMimeType('text/plain; charset=x-user-defined');
3469
+ }
3470
+
3471
+ xhr.send(null);
3472
+ if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
3473
+ if (xhr.response !== undefined) {
3474
+ return new Uint8Array(/** @type{Array<number>} */(xhr.response || []));
3475
+ }
3476
+ return intArrayFromString(xhr.responseText || '', true);
3477
+ };
3478
+ var lazyArray = this;
3479
+ lazyArray.setDataGetter((chunkNum) => {
3480
+ var start = chunkNum * chunkSize;
3481
+ var end = (chunkNum+1) * chunkSize - 1; // including this byte
3482
+ end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
3483
+ if (typeof lazyArray.chunks[chunkNum] == 'undefined') {
3484
+ lazyArray.chunks[chunkNum] = doXHR(start, end);
3485
+ }
3486
+ if (typeof lazyArray.chunks[chunkNum] == 'undefined') throw new Error('doXHR failed!');
3487
+ return lazyArray.chunks[chunkNum];
3488
+ });
3489
+
3490
+ if (usesGzip || !datalength) {
3491
+ // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length
3492
+ chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file
3493
+ datalength = this.getter(0).length;
3494
+ chunkSize = datalength;
3495
+ out("LazyFiles on gzip forces download of the whole file when length is accessed");
3651
3496
  }
3652
3497
 
3653
- xhr.send(null);
3654
- if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
3655
- if (xhr.response !== undefined) {
3656
- return new Uint8Array(/** @type{Array<number>} */(xhr.response || []));
3498
+ this._length = datalength;
3499
+ this._chunkSize = chunkSize;
3500
+ this.lengthKnown = true;
3501
+ }
3502
+ get length() {
3503
+ if (!this.lengthKnown) {
3504
+ this.cacheLength();
3657
3505
  }
3658
- return intArrayFromString(xhr.responseText || '', true);
3659
- };
3660
- var lazyArray = this;
3661
- lazyArray.setDataGetter((chunkNum) => {
3662
- var start = chunkNum * chunkSize;
3663
- var end = (chunkNum+1) * chunkSize - 1; // including this byte
3664
- end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
3665
- if (typeof lazyArray.chunks[chunkNum] == 'undefined') {
3666
- lazyArray.chunks[chunkNum] = doXHR(start, end);
3506
+ return this._length;
3507
+ }
3508
+ get chunkSize() {
3509
+ if (!this.lengthKnown) {
3510
+ this.cacheLength();
3667
3511
  }
3668
- if (typeof lazyArray.chunks[chunkNum] == 'undefined') throw new Error('doXHR failed!');
3669
- return lazyArray.chunks[chunkNum];
3670
- });
3671
-
3672
- if (usesGzip || !datalength) {
3673
- // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length
3674
- chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file
3675
- datalength = this.getter(0).length;
3676
- chunkSize = datalength;
3677
- out("LazyFiles on gzip forces download of the whole file when length is accessed");
3512
+ return this._chunkSize;
3678
3513
  }
3514
+ }
3679
3515
 
3680
- this._length = datalength;
3681
- this._chunkSize = chunkSize;
3682
- this.lengthKnown = true;
3683
- };
3684
3516
  if (typeof XMLHttpRequest != 'undefined') {
3685
3517
  if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
3686
3518
  var lazyArray = new LazyUint8Array();
3687
- Object.defineProperties(lazyArray, {
3688
- length: {
3689
- get: /** @this{Object} */ function() {
3690
- if (!this.lengthKnown) {
3691
- this.cacheLength();
3692
- }
3693
- return this._length;
3694
- }
3695
- },
3696
- chunkSize: {
3697
- get: /** @this{Object} */ function() {
3698
- if (!this.lengthKnown) {
3699
- this.cacheLength();
3700
- }
3701
- return this._chunkSize;
3702
- }
3703
- }
3704
- });
3705
-
3706
3519
  var properties = { isDevice: false, contents: lazyArray };
3707
3520
  } else {
3708
3521
  var properties = { isDevice: false, url: url };
@@ -3721,7 +3534,7 @@ function dbg(text) {
3721
3534
  // Add a function that defers querying the file size until it is asked the first time.
3722
3535
  Object.defineProperties(node, {
3723
3536
  usedBytes: {
3724
- get: /** @this {FSNode} */ function() { return this.contents.length; }
3537
+ get: function() { return this.contents.length; }
3725
3538
  }
3726
3539
  });
3727
3540
  // override each stream op with one that tries to force load the lazy file first
@@ -3729,9 +3542,9 @@ function dbg(text) {
3729
3542
  var keys = Object.keys(node.stream_ops);
3730
3543
  keys.forEach((key) => {
3731
3544
  var fn = node.stream_ops[key];
3732
- stream_ops[key] = function forceLoadLazyFile() {
3545
+ stream_ops[key] = (...args) => {
3733
3546
  FS.forceLoadFile(node);
3734
- return fn.apply(null, arguments);
3547
+ return fn(...args);
3735
3548
  };
3736
3549
  });
3737
3550
  function writeChunks(stream, buffer, offset, length, position) {
@@ -3812,15 +3625,7 @@ function dbg(text) {
3812
3625
  return PATH.join2(dir, path);
3813
3626
  },
3814
3627
  doStat(func, path, buf) {
3815
- try {
3816
- var stat = func(path);
3817
- } catch (e) {
3818
- if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {
3819
- // an error occurred while trying to look up the path; we should just report ENOTDIR
3820
- return -54;
3821
- }
3822
- throw e;
3823
- }
3628
+ var stat = func(path);
3824
3629
  HEAP32[((buf)>>2)] = stat.dev;
3825
3630
  HEAP32[(((buf)+(4))>>2)] = stat.mode;
3826
3631
  HEAPU32[(((buf)+(8))>>2)] = stat.nlink;
@@ -3834,11 +3639,11 @@ function dbg(text) {
3834
3639
  var mtime = stat.mtime.getTime();
3835
3640
  var ctime = stat.ctime.getTime();
3836
3641
  (tempI64 = [Math.floor(atime / 1000)>>>0,(tempDouble = Math.floor(atime / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((buf)+(40))>>2)] = tempI64[0],HEAP32[(((buf)+(44))>>2)] = tempI64[1]);
3837
- HEAPU32[(((buf)+(48))>>2)] = (atime % 1000) * 1000;
3642
+ HEAPU32[(((buf)+(48))>>2)] = (atime % 1000) * 1000 * 1000;
3838
3643
  (tempI64 = [Math.floor(mtime / 1000)>>>0,(tempDouble = Math.floor(mtime / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((buf)+(56))>>2)] = tempI64[0],HEAP32[(((buf)+(60))>>2)] = tempI64[1]);
3839
- HEAPU32[(((buf)+(64))>>2)] = (mtime % 1000) * 1000;
3644
+ HEAPU32[(((buf)+(64))>>2)] = (mtime % 1000) * 1000 * 1000;
3840
3645
  (tempI64 = [Math.floor(ctime / 1000)>>>0,(tempDouble = Math.floor(ctime / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((buf)+(72))>>2)] = tempI64[0],HEAP32[(((buf)+(76))>>2)] = tempI64[1]);
3841
- HEAPU32[(((buf)+(80))>>2)] = (ctime % 1000) * 1000;
3646
+ HEAPU32[(((buf)+(80))>>2)] = (ctime % 1000) * 1000 * 1000;
3842
3647
  (tempI64 = [stat.ino>>>0,(tempDouble = stat.ino,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((buf)+(88))>>2)] = tempI64[0],HEAP32[(((buf)+(92))>>2)] = tempI64[1]);
3843
3648
  return 0;
3844
3649
  },
@@ -3853,23 +3658,15 @@ function dbg(text) {
3853
3658
  var buffer = HEAPU8.slice(addr, addr + len);
3854
3659
  FS.msync(stream, buffer, offset, len, flags);
3855
3660
  },
3856
- varargs:undefined,
3857
- get() {
3858
- assert(SYSCALLS.varargs != undefined);
3859
- // the `+` prepended here is necessary to convince the JSCompiler that varargs is indeed a number.
3860
- var ret = HEAP32[((+SYSCALLS.varargs)>>2)];
3861
- SYSCALLS.varargs += 4;
3862
- return ret;
3661
+ getStreamFromFD(fd) {
3662
+ var stream = FS.getStreamChecked(fd);
3663
+ return stream;
3863
3664
  },
3864
- getp() { return SYSCALLS.get() },
3665
+ varargs:undefined,
3865
3666
  getStr(ptr) {
3866
3667
  var ret = UTF8ToString(ptr);
3867
3668
  return ret;
3868
3669
  },
3869
- getStreamFromFD(fd) {
3870
- var stream = FS.getStreamChecked(fd);
3871
- return stream;
3872
- },
3873
3670
  };
3874
3671
  function ___syscall_chmod(path, mode) {
3875
3672
  try {
@@ -3887,7 +3684,7 @@ function dbg(text) {
3887
3684
  try {
3888
3685
 
3889
3686
  path = SYSCALLS.getStr(path);
3890
- assert(flags === 0);
3687
+ assert(flags === 0 || flags == 512);
3891
3688
  path = SYSCALLS.calculateAt(dirfd, path);
3892
3689
  if (amode & ~7) {
3893
3690
  // need a valid mode
@@ -3934,10 +3731,16 @@ function dbg(text) {
3934
3731
  }
3935
3732
  }
3936
3733
 
3937
- var setErrNo = (value) => {
3938
- HEAP32[((___errno_location())>>2)] = value;
3939
- return value;
3734
+ /** @suppress {duplicate } */
3735
+ var syscallGetVarargI = () => {
3736
+ assert(SYSCALLS.varargs != undefined);
3737
+ // the `+` prepended here is necessary to convince the JSCompiler that varargs is indeed a number.
3738
+ var ret = HEAP32[((+SYSCALLS.varargs)>>2)];
3739
+ SYSCALLS.varargs += 4;
3740
+ return ret;
3940
3741
  };
3742
+ var syscallGetVarargP = syscallGetVarargI;
3743
+
3941
3744
 
3942
3745
  function ___syscall_fcntl64(fd, cmd, varargs) {
3943
3746
  SYSCALLS.varargs = varargs;
@@ -3946,7 +3749,7 @@ function dbg(text) {
3946
3749
  var stream = SYSCALLS.getStreamFromFD(fd);
3947
3750
  switch (cmd) {
3948
3751
  case 0: {
3949
- var arg = SYSCALLS.get();
3752
+ var arg = syscallGetVarargI();
3950
3753
  if (arg < 0) {
3951
3754
  return -28;
3952
3755
  }
@@ -3954,7 +3757,7 @@ function dbg(text) {
3954
3757
  arg++;
3955
3758
  }
3956
3759
  var newStream;
3957
- newStream = FS.createStream(stream, arg);
3760
+ newStream = FS.dupStream(stream, arg);
3958
3761
  return newStream.fd;
3959
3762
  }
3960
3763
  case 1:
@@ -3963,31 +3766,22 @@ function dbg(text) {
3963
3766
  case 3:
3964
3767
  return stream.flags;
3965
3768
  case 4: {
3966
- var arg = SYSCALLS.get();
3769
+ var arg = syscallGetVarargI();
3967
3770
  stream.flags |= arg;
3968
3771
  return 0;
3969
3772
  }
3970
- case 5: {
3971
- var arg = SYSCALLS.getp();
3773
+ case 12: {
3774
+ var arg = syscallGetVarargP();
3972
3775
  var offset = 0;
3973
3776
  // We're always unlocked.
3974
3777
  HEAP16[(((arg)+(offset))>>1)] = 2;
3975
3778
  return 0;
3976
3779
  }
3977
- case 6:
3978
- case 7:
3780
+ case 13:
3781
+ case 14:
3979
3782
  return 0; // Pretend that the locking is successful.
3980
- case 16:
3981
- case 8:
3982
- return -28; // These are for sockets. We don't have them fully implemented yet.
3983
- case 9:
3984
- // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fcntl() returns that, and we set errno ourselves.
3985
- setErrNo(28);
3986
- return -1;
3987
- default: {
3988
- return -28;
3989
- }
3990
3783
  }
3784
+ return -28;
3991
3785
  } catch (e) {
3992
3786
  if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
3993
3787
  return -e.errno;
@@ -4005,14 +3799,13 @@ function dbg(text) {
4005
3799
  }
4006
3800
  }
4007
3801
 
4008
-
4009
3802
  var convertI32PairToI53Checked = (lo, hi) => {
4010
3803
  assert(lo == (lo >>> 0) || lo == (lo|0)); // lo should either be a i32 or a u32
4011
3804
  assert(hi === (hi|0)); // hi should be a i32
4012
3805
  return ((hi + 0x200000) >>> 0 < 0x400001 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN;
4013
3806
  };
4014
3807
  function ___syscall_ftruncate64(fd,length_low, length_high) {
4015
- var length = convertI32PairToI53Checked(length_low, length_high);;
3808
+ var length = convertI32PairToI53Checked(length_low, length_high);
4016
3809
 
4017
3810
 
4018
3811
  try {
@@ -4032,7 +3825,6 @@ function dbg(text) {
4032
3825
  assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
4033
3826
  return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
4034
3827
  };
4035
-
4036
3828
  function ___syscall_getcwd(buf, size) {
4037
3829
  try {
4038
3830
 
@@ -4092,13 +3884,14 @@ function dbg(text) {
4092
3884
  }
4093
3885
  }
4094
3886
 
3887
+
4095
3888
  function ___syscall_openat(dirfd, path, flags, varargs) {
4096
3889
  SYSCALLS.varargs = varargs;
4097
3890
  try {
4098
3891
 
4099
3892
  path = SYSCALLS.getStr(path);
4100
3893
  path = SYSCALLS.calculateAt(dirfd, path);
4101
- var mode = varargs ? SYSCALLS.get() : 0;
3894
+ var mode = varargs ? syscallGetVarargI() : 0;
4102
3895
  return FS.open(path, flags, mode).fd;
4103
3896
  } catch (e) {
4104
3897
  if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
@@ -4181,19 +3974,37 @@ function dbg(text) {
4181
3974
  path = SYSCALLS.getStr(path);
4182
3975
  assert(flags === 0);
4183
3976
  path = SYSCALLS.calculateAt(dirfd, path, true);
3977
+ var now = Date.now(), atime, mtime;
4184
3978
  if (!times) {
4185
- var atime = Date.now();
4186
- var mtime = atime;
3979
+ atime = now;
3980
+ mtime = now;
4187
3981
  } else {
4188
3982
  var seconds = readI53FromI64(times);
4189
3983
  var nanoseconds = HEAP32[(((times)+(8))>>2)];
4190
- atime = (seconds*1000) + (nanoseconds/(1000*1000));
3984
+ if (nanoseconds == 1073741823) {
3985
+ atime = now;
3986
+ } else if (nanoseconds == 1073741822) {
3987
+ atime = -1;
3988
+ } else {
3989
+ atime = (seconds*1000) + (nanoseconds/(1000*1000));
3990
+ }
4191
3991
  times += 16;
4192
3992
  seconds = readI53FromI64(times);
4193
3993
  nanoseconds = HEAP32[(((times)+(8))>>2)];
4194
- mtime = (seconds*1000) + (nanoseconds/(1000*1000));
3994
+ if (nanoseconds == 1073741823) {
3995
+ mtime = now;
3996
+ } else if (nanoseconds == 1073741822) {
3997
+ mtime = -1;
3998
+ } else {
3999
+ mtime = (seconds*1000) + (nanoseconds/(1000*1000));
4000
+ }
4001
+ }
4002
+ // -1 here means UTIME_OMIT was passed. FS.utime tables the max of these
4003
+ // two values and sets the timestamp to that single value. If both were
4004
+ // set to UTIME_OMIT then we can skip the call completely.
4005
+ if (mtime != -1 || atime != -1) {
4006
+ FS.utime(path, atime, mtime);
4195
4007
  }
4196
- FS.utime(path, atime, mtime);
4197
4008
  return 0;
4198
4009
  } catch (e) {
4199
4010
  if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
@@ -4204,6 +4015,8 @@ function dbg(text) {
4204
4015
  var nowIsMonotonic = 1;
4205
4016
  var __emscripten_get_now_is_monotonic = () => nowIsMonotonic;
4206
4017
 
4018
+ var __emscripten_memcpy_js = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num);
4019
+
4207
4020
  var isLeapYear = (year) => year%4 === 0 && (year%100 !== 0 || year%400 === 0);
4208
4021
 
4209
4022
  var MONTH_DAYS_LEAP_CUMULATIVE = [0,31,60,91,121,152,182,213,244,274,305,335];
@@ -4218,7 +4031,7 @@ function dbg(text) {
4218
4031
  };
4219
4032
 
4220
4033
  function __localtime_js(time_low, time_high,tmPtr) {
4221
- var time = convertI32PairToI53Checked(time_low, time_high);;
4034
+ var time = convertI32PairToI53Checked(time_low, time_high);
4222
4035
 
4223
4036
 
4224
4037
  var date = new Date(time*1000);
@@ -4249,7 +4062,7 @@ function dbg(text) {
4249
4062
 
4250
4063
 
4251
4064
  function __mmap_js(len,prot,flags,fd,offset_low, offset_high,allocated,addr) {
4252
- var offset = convertI32PairToI53Checked(offset_low, offset_high);;
4065
+ var offset = convertI32PairToI53Checked(offset_low, offset_high);
4253
4066
 
4254
4067
 
4255
4068
  try {
@@ -4269,21 +4082,16 @@ function dbg(text) {
4269
4082
  }
4270
4083
 
4271
4084
 
4272
-
4273
-
4274
4085
  function __munmap_js(addr,len,prot,flags,fd,offset_low, offset_high) {
4275
- var offset = convertI32PairToI53Checked(offset_low, offset_high);;
4086
+ var offset = convertI32PairToI53Checked(offset_low, offset_high);
4276
4087
 
4277
4088
 
4278
4089
  try {
4279
4090
 
4280
- if (isNaN(offset)) return 61;
4281
4091
  var stream = SYSCALLS.getStreamFromFD(fd);
4282
4092
  if (prot & 2) {
4283
4093
  SYSCALLS.doMsync(addr, stream, len, flags, offset);
4284
4094
  }
4285
- FS.munmap(stream);
4286
- // implicitly return 0
4287
4095
  } catch (e) {
4288
4096
  if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
4289
4097
  return -e.errno;
@@ -4292,14 +4100,7 @@ function dbg(text) {
4292
4100
  }
4293
4101
 
4294
4102
 
4295
-
4296
- var stringToNewUTF8 = (str) => {
4297
- var size = lengthBytesUTF8(str) + 1;
4298
- var ret = _malloc(size);
4299
- if (ret) stringToUTF8(str, ret, size);
4300
- return ret;
4301
- };
4302
- var __tzset_js = (timezone, daylight, tzname) => {
4103
+ var __tzset_js = (timezone, daylight, std_name, dst_name) => {
4303
4104
  // TODO: Use (malleable) environment variables instead of system settings.
4304
4105
  var currentYear = new Date().getFullYear();
4305
4106
  var winter = new Date(currentYear, 0, 1);
@@ -4307,9 +4108,12 @@ function dbg(text) {
4307
4108
  var winterOffset = winter.getTimezoneOffset();
4308
4109
  var summerOffset = summer.getTimezoneOffset();
4309
4110
 
4310
- // Local standard timezone offset. Local standard time is not adjusted for daylight savings.
4311
- // This code uses the fact that getTimezoneOffset returns a greater value during Standard Time versus Daylight Saving Time (DST).
4312
- // Thus it determines the expected output during Standard Time, and it compares whether the output of the given date the same (Standard) or less (DST).
4111
+ // Local standard timezone offset. Local standard time is not adjusted for
4112
+ // daylight savings. This code uses the fact that getTimezoneOffset returns
4113
+ // a greater value during Standard Time versus Daylight Saving Time (DST).
4114
+ // Thus it determines the expected output during Standard Time, and it
4115
+ // compares whether the output of the given date the same (Standard) or less
4116
+ // (DST).
4313
4117
  var stdTimezoneOffset = Math.max(winterOffset, summerOffset);
4314
4118
 
4315
4119
  // timezone is specified as seconds west of UTC ("The external variable
@@ -4321,21 +4125,31 @@ function dbg(text) {
4321
4125
 
4322
4126
  HEAP32[((daylight)>>2)] = Number(winterOffset != summerOffset);
4323
4127
 
4324
- function extractZone(date) {
4325
- var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/);
4326
- return match ? match[1] : "GMT";
4327
- };
4328
- var winterName = extractZone(winter);
4329
- var summerName = extractZone(summer);
4330
- var winterNamePtr = stringToNewUTF8(winterName);
4331
- var summerNamePtr = stringToNewUTF8(summerName);
4128
+ var extractZone = (timezoneOffset) => {
4129
+ // Why inverse sign?
4130
+ // Read here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset
4131
+ var sign = timezoneOffset >= 0 ? "-" : "+";
4132
+
4133
+ var absOffset = Math.abs(timezoneOffset)
4134
+ var hours = String(Math.floor(absOffset / 60)).padStart(2, "0");
4135
+ var minutes = String(absOffset % 60).padStart(2, "0");
4136
+
4137
+ return `UTC${sign}${hours}${minutes}`;
4138
+ }
4139
+
4140
+ var winterName = extractZone(winterOffset);
4141
+ var summerName = extractZone(summerOffset);
4142
+ assert(winterName);
4143
+ assert(summerName);
4144
+ assert(lengthBytesUTF8(winterName) <= 16, `timezone name truncated to fit in TZNAME_MAX (${winterName})`);
4145
+ assert(lengthBytesUTF8(summerName) <= 16, `timezone name truncated to fit in TZNAME_MAX (${summerName})`);
4332
4146
  if (summerOffset < winterOffset) {
4333
4147
  // Northern hemisphere
4334
- HEAPU32[((tzname)>>2)] = winterNamePtr;
4335
- HEAPU32[(((tzname)+(4))>>2)] = summerNamePtr;
4148
+ stringToUTF8(winterName, std_name, 17);
4149
+ stringToUTF8(summerName, dst_name, 17);
4336
4150
  } else {
4337
- HEAPU32[((tzname)>>2)] = summerNamePtr;
4338
- HEAPU32[(((tzname)+(4))>>2)] = winterNamePtr;
4151
+ stringToUTF8(winterName, dst_name, 17);
4152
+ stringToUTF8(summerName, std_name, 17);
4339
4153
  }
4340
4154
  };
4341
4155
 
@@ -4345,16 +4159,10 @@ function dbg(text) {
4345
4159
  HEAPU8.length;
4346
4160
  var _emscripten_get_heap_max = () => getHeapMax();
4347
4161
 
4348
- var _emscripten_get_now;
4349
- // Modern environment where performance.now() is supported:
4350
- // N.B. a shorter form "_emscripten_get_now = performance.now;" is
4351
- // unfortunately not allowed even in current browsers (e.g. FF Nightly 75).
4352
- _emscripten_get_now = () => performance.now();
4353
- ;
4354
-
4355
- var _emscripten_memcpy_js = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num);
4162
+ var _emscripten_get_now = () => performance.now();
4356
4163
 
4357
4164
 
4165
+
4358
4166
  var abortOnCannotGrowMemory = (requestedSize) => {
4359
4167
  abort(`Cannot enlarge memory arrays to size ${requestedSize} bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value ${HEAP8.length}, (2) compile with -sALLOW_MEMORY_GROWTH which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -sABORTING_MALLOC=0`);
4360
4168
  };
@@ -4368,9 +4176,7 @@ function dbg(text) {
4368
4176
  var ENV = {
4369
4177
  };
4370
4178
 
4371
- var getExecutableName = () => {
4372
- return thisProgram || './this.program';
4373
- };
4179
+ var getExecutableName = () => thisProgram || './this.program';
4374
4180
  var getEnvStrings = () => {
4375
4181
  if (!getEnvStrings.strings) {
4376
4182
  // Default values.
@@ -4405,12 +4211,11 @@ function dbg(text) {
4405
4211
  var stringToAscii = (str, buffer) => {
4406
4212
  for (var i = 0; i < str.length; ++i) {
4407
4213
  assert(str.charCodeAt(i) === (str.charCodeAt(i) & 0xff));
4408
- HEAP8[((buffer++)>>0)] = str.charCodeAt(i);
4214
+ HEAP8[buffer++] = str.charCodeAt(i);
4409
4215
  }
4410
4216
  // Null-terminate the string
4411
- HEAP8[((buffer)>>0)] = 0;
4217
+ HEAP8[buffer] = 0;
4412
4218
  };
4413
-
4414
4219
  var _environ_get = (__environ, environ_buf) => {
4415
4220
  var bufSize = 0;
4416
4221
  getEnvStrings().forEach((string, i) => {
@@ -4422,7 +4227,6 @@ function dbg(text) {
4422
4227
  return 0;
4423
4228
  };
4424
4229
 
4425
-
4426
4230
  var _environ_sizes_get = (penviron_count, penviron_buf_size) => {
4427
4231
  var strings = getEnvStrings();
4428
4232
  HEAPU32[((penviron_count)>>2)] = strings.length;
@@ -4459,7 +4263,7 @@ function dbg(text) {
4459
4263
  FS.isLink(stream.mode) ? 7 :
4460
4264
  4;
4461
4265
  }
4462
- HEAP8[((pbuf)>>0)] = type;
4266
+ HEAP8[pbuf] = type;
4463
4267
  HEAP16[(((pbuf)+(2))>>1)] = flags;
4464
4268
  (tempI64 = [rightsBase>>>0,(tempDouble = rightsBase,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((pbuf)+(8))>>2)] = tempI64[0],HEAP32[(((pbuf)+(12))>>2)] = tempI64[1]);
4465
4269
  (tempI64 = [rightsInheriting>>>0,(tempDouble = rightsInheriting,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((pbuf)+(16))>>2)] = tempI64[0],HEAP32[(((pbuf)+(20))>>2)] = tempI64[1]);
@@ -4481,7 +4285,7 @@ function dbg(text) {
4481
4285
  if (curr < 0) return -1;
4482
4286
  ret += curr;
4483
4287
  if (curr < len) break; // nothing more to read
4484
- if (typeof offset !== 'undefined') {
4288
+ if (typeof offset != 'undefined') {
4485
4289
  offset += curr;
4486
4290
  }
4487
4291
  }
@@ -4503,7 +4307,7 @@ function dbg(text) {
4503
4307
 
4504
4308
 
4505
4309
  function _fd_seek(fd,offset_low, offset_high,whence,newOffset) {
4506
- var offset = convertI32PairToI53Checked(offset_low, offset_high);;
4310
+ var offset = convertI32PairToI53Checked(offset_low, offset_high);
4507
4311
 
4508
4312
 
4509
4313
  try {
@@ -4545,7 +4349,11 @@ function dbg(text) {
4545
4349
  var curr = FS.write(stream, HEAP8, ptr, len, offset);
4546
4350
  if (curr < 0) return -1;
4547
4351
  ret += curr;
4548
- if (typeof offset !== 'undefined') {
4352
+ if (curr < len) {
4353
+ // No more space to write.
4354
+ break;
4355
+ }
4356
+ if (typeof offset != 'undefined') {
4549
4357
  offset += curr;
4550
4358
  }
4551
4359
  }
@@ -4677,7 +4485,6 @@ function dbg(text) {
4677
4485
 
4678
4486
  var runtimeKeepaliveCounter = 0;
4679
4487
  var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;
4680
-
4681
4488
  var _proc_exit = (code) => {
4682
4489
  EXITSTATUS = code;
4683
4490
  if (!keepRuntimeAlive()) {
@@ -4687,6 +4494,7 @@ function dbg(text) {
4687
4494
  quit_(code, new ExitStatus(code));
4688
4495
  };
4689
4496
 
4497
+
4690
4498
  /** @param {boolean|number=} implicit */
4691
4499
  var exitJS = (status, implicit) => {
4692
4500
  EXITSTATUS = status;
@@ -4806,7 +4614,7 @@ function dbg(text) {
4806
4614
  ];
4807
4615
  // Write the overall length of the type section followed by the body
4808
4616
  uleb128Encode(typeSectionBody.length, bytes);
4809
- bytes.push.apply(bytes, typeSectionBody);
4617
+ bytes.push(...typeSectionBody);
4810
4618
 
4811
4619
  // The rest of the module is static
4812
4620
  bytes.push(
@@ -4828,14 +4636,17 @@ function dbg(text) {
4828
4636
 
4829
4637
  var wasmTableMirror = [];
4830
4638
 
4639
+ /** @type {WebAssembly.Table} */
4831
4640
  var wasmTable;
4832
4641
  var getWasmTableEntry = (funcPtr) => {
4833
4642
  var func = wasmTableMirror[funcPtr];
4834
4643
  if (!func) {
4835
4644
  if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1;
4645
+ /** @suppress {checkTypes} */
4836
4646
  wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
4837
4647
  }
4838
- assert(wasmTable.get(funcPtr) == func, "JavaScript-side Wasm function table mirror is out of date!");
4648
+ /** @suppress {checkTypes} */
4649
+ assert(wasmTable.get(funcPtr) == func, 'JavaScript-side Wasm function table mirror is out of date!');
4839
4650
  return func;
4840
4651
  };
4841
4652
 
@@ -4872,6 +4683,7 @@ function dbg(text) {
4872
4683
  }
4873
4684
  // Grow the table
4874
4685
  try {
4686
+ /** @suppress {checkTypes} */
4875
4687
  wasmTable.grow(1);
4876
4688
  } catch (err) {
4877
4689
  if (!(err instanceof RangeError)) {
@@ -4885,10 +4697,12 @@ function dbg(text) {
4885
4697
 
4886
4698
 
4887
4699
  var setWasmTableEntry = (idx, func) => {
4700
+ /** @suppress {checkTypes} */
4888
4701
  wasmTable.set(idx, func);
4889
- // With ABORT_ON_WASM_EXCEPTIONS wasmTable.get is overriden to return wrapped
4702
+ // With ABORT_ON_WASM_EXCEPTIONS wasmTable.get is overridden to return wrapped
4890
4703
  // functions so we need to call it here to retrieve the potential wrapper correctly
4891
4704
  // instead of just storing 'func' directly into wasmTableMirror
4705
+ /** @suppress {checkTypes} */
4892
4706
  wasmTableMirror[idx] = wasmTable.get(idx);
4893
4707
  };
4894
4708
 
@@ -4936,6 +4750,8 @@ function dbg(text) {
4936
4750
  };
4937
4751
 
4938
4752
 
4753
+
4754
+ var stackAlloc = (sz) => __emscripten_stack_alloc(sz);
4939
4755
  var stringToUTF8OnStack = (str) => {
4940
4756
  var size = lengthBytesUTF8(str) + 1;
4941
4757
  var ret = stackAlloc(size);
@@ -4944,6 +4760,9 @@ function dbg(text) {
4944
4760
  };
4945
4761
 
4946
4762
 
4763
+
4764
+
4765
+
4947
4766
  /**
4948
4767
  * @param {string|null=} returnType
4949
4768
  * @param {Array=} argTypes
@@ -4956,7 +4775,6 @@ function dbg(text) {
4956
4775
  'string': (str) => {
4957
4776
  var ret = 0;
4958
4777
  if (str !== null && str !== undefined && str !== 0) { // null string
4959
- // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0'
4960
4778
  ret = stringToUTF8OnStack(str);
4961
4779
  }
4962
4780
  return ret;
@@ -4970,7 +4788,6 @@ function dbg(text) {
4970
4788
 
4971
4789
  function convertReturnValue(ret) {
4972
4790
  if (returnType === 'string') {
4973
-
4974
4791
  return UTF8ToString(ret);
4975
4792
  }
4976
4793
  if (returnType === 'boolean') return Boolean(ret);
@@ -4992,7 +4809,7 @@ function dbg(text) {
4992
4809
  }
4993
4810
  }
4994
4811
  }
4995
- var ret = func.apply(null, cArgs);
4812
+ var ret = func(...cArgs);
4996
4813
  function onDone(ret) {
4997
4814
  if (stack !== 0) stackRestore(stack);
4998
4815
  return convertReturnValue(ret);
@@ -5010,11 +4827,11 @@ function dbg(text) {
5010
4827
  * @param {Object=} opts
5011
4828
  */
5012
4829
  var cwrap = (ident, returnType, argTypes, opts) => {
5013
- return function() {
5014
- return ccall(ident, returnType, argTypes, arguments, opts);
5015
- }
4830
+ return (...args) => ccall(ident, returnType, argTypes, args, opts);
5016
4831
  };
5017
4832
 
4833
+ var getTempRet0 = (val) => __emscripten_tempret_get();
4834
+
5018
4835
 
5019
4836
 
5020
4837
 
@@ -5067,7 +4884,7 @@ function dbg(text) {
5067
4884
  var AsciiToString = (ptr) => {
5068
4885
  var str = '';
5069
4886
  while (1) {
5070
- var ch = HEAPU8[((ptr++)>>0)];
4887
+ var ch = HEAPU8[ptr++];
5071
4888
  if (!ch) return str;
5072
4889
  str += String.fromCharCode(ch);
5073
4890
  }
@@ -5147,53 +4964,10 @@ function dbg(text) {
5147
4964
  }
5148
4965
 
5149
4966
 
5150
- var FSNode = /** @constructor */ function(parent, name, mode, rdev) {
5151
- if (!parent) {
5152
- parent = this; // root node sets parent to itself
5153
- }
5154
- this.parent = parent;
5155
- this.mount = parent.mount;
5156
- this.mounted = null;
5157
- this.id = FS.nextInode++;
5158
- this.name = name;
5159
- this.mode = mode;
5160
- this.node_ops = {};
5161
- this.stream_ops = {};
5162
- this.rdev = rdev;
5163
- };
5164
- var readMode = 292/*292*/ | 73/*73*/;
5165
- var writeMode = 146/*146*/;
5166
- Object.defineProperties(FSNode.prototype, {
5167
- read: {
5168
- get: /** @this{FSNode} */function() {
5169
- return (this.mode & readMode) === readMode;
5170
- },
5171
- set: /** @this{FSNode} */function(val) {
5172
- val ? this.mode |= readMode : this.mode &= ~readMode;
5173
- }
5174
- },
5175
- write: {
5176
- get: /** @this{FSNode} */function() {
5177
- return (this.mode & writeMode) === writeMode;
5178
- },
5179
- set: /** @this{FSNode} */function(val) {
5180
- val ? this.mode |= writeMode : this.mode &= ~writeMode;
5181
- }
5182
- },
5183
- isFolder: {
5184
- get: /** @this{FSNode} */function() {
5185
- return FS.isDir(this.mode);
5186
- }
5187
- },
5188
- isDevice: {
5189
- get: /** @this{FSNode} */function() {
5190
- return FS.isChrdev(this.mode);
5191
- }
5192
- }
5193
- });
5194
- FS.FSNode = FSNode;
5195
4967
  FS.createPreloadedFile = FS_createPreloadedFile;
5196
- FS.staticInit();;
4968
+ FS.staticInit();
4969
+ // Set module methods based on EXPORTED_RUNTIME_METHODS
4970
+ ;
5197
4971
  adapters_support();;
5198
4972
  function checkIncomingModuleAPI() {
5199
4973
  ignoredModuleProp('fetchSettings');
@@ -5238,6 +5012,8 @@ var wasmImports = {
5238
5012
  /** @export */
5239
5013
  _emscripten_get_now_is_monotonic: __emscripten_get_now_is_monotonic,
5240
5014
  /** @export */
5015
+ _emscripten_memcpy_js: __emscripten_memcpy_js,
5016
+ /** @export */
5241
5017
  _localtime_js: __localtime_js,
5242
5018
  /** @export */
5243
5019
  _mmap_js: __mmap_js,
@@ -5252,8 +5028,6 @@ var wasmImports = {
5252
5028
  /** @export */
5253
5029
  emscripten_get_now: _emscripten_get_now,
5254
5030
  /** @export */
5255
- emscripten_memcpy_js: _emscripten_memcpy_js,
5256
- /** @export */
5257
5031
  emscripten_resize_heap: _emscripten_resize_heap,
5258
5032
  /** @export */
5259
5033
  environ_get: _environ_get,
@@ -5337,299 +5111,299 @@ var wasmImports = {
5337
5111
  vpppip_async: _vpppip_async
5338
5112
  };
5339
5113
  var wasmExports = createWasm();
5340
- var ___wasm_call_ctors = createExportWrapper('__wasm_call_ctors');
5341
- var _sqlite3_status64 = Module['_sqlite3_status64'] = createExportWrapper('sqlite3_status64');
5342
- var _sqlite3_status = Module['_sqlite3_status'] = createExportWrapper('sqlite3_status');
5343
- var _sqlite3_db_status = Module['_sqlite3_db_status'] = createExportWrapper('sqlite3_db_status');
5344
- var _sqlite3_msize = Module['_sqlite3_msize'] = createExportWrapper('sqlite3_msize');
5345
- var _sqlite3_vfs_find = Module['_sqlite3_vfs_find'] = createExportWrapper('sqlite3_vfs_find');
5346
- var _sqlite3_vfs_register = Module['_sqlite3_vfs_register'] = createExportWrapper('sqlite3_vfs_register');
5347
- var _sqlite3_vfs_unregister = Module['_sqlite3_vfs_unregister'] = createExportWrapper('sqlite3_vfs_unregister');
5348
- var _sqlite3_release_memory = Module['_sqlite3_release_memory'] = createExportWrapper('sqlite3_release_memory');
5349
- var _sqlite3_soft_heap_limit64 = Module['_sqlite3_soft_heap_limit64'] = createExportWrapper('sqlite3_soft_heap_limit64');
5350
- var _sqlite3_memory_used = Module['_sqlite3_memory_used'] = createExportWrapper('sqlite3_memory_used');
5351
- var _sqlite3_hard_heap_limit64 = Module['_sqlite3_hard_heap_limit64'] = createExportWrapper('sqlite3_hard_heap_limit64');
5352
- var _sqlite3_memory_highwater = Module['_sqlite3_memory_highwater'] = createExportWrapper('sqlite3_memory_highwater');
5353
- var _sqlite3_malloc = Module['_sqlite3_malloc'] = createExportWrapper('sqlite3_malloc');
5354
- var _sqlite3_malloc64 = Module['_sqlite3_malloc64'] = createExportWrapper('sqlite3_malloc64');
5355
- var _sqlite3_free = Module['_sqlite3_free'] = createExportWrapper('sqlite3_free');
5356
- var _sqlite3_realloc = Module['_sqlite3_realloc'] = createExportWrapper('sqlite3_realloc');
5357
- var _sqlite3_realloc64 = Module['_sqlite3_realloc64'] = createExportWrapper('sqlite3_realloc64');
5358
- var _sqlite3_str_vappendf = Module['_sqlite3_str_vappendf'] = createExportWrapper('sqlite3_str_vappendf');
5359
- var _sqlite3_str_append = Module['_sqlite3_str_append'] = createExportWrapper('sqlite3_str_append');
5360
- var _sqlite3_str_appendchar = Module['_sqlite3_str_appendchar'] = createExportWrapper('sqlite3_str_appendchar');
5361
- var _sqlite3_str_appendall = Module['_sqlite3_str_appendall'] = createExportWrapper('sqlite3_str_appendall');
5362
- var _sqlite3_str_appendf = Module['_sqlite3_str_appendf'] = createExportWrapper('sqlite3_str_appendf');
5363
- var _sqlite3_str_finish = Module['_sqlite3_str_finish'] = createExportWrapper('sqlite3_str_finish');
5364
- var _sqlite3_str_errcode = Module['_sqlite3_str_errcode'] = createExportWrapper('sqlite3_str_errcode');
5365
- var _sqlite3_str_length = Module['_sqlite3_str_length'] = createExportWrapper('sqlite3_str_length');
5366
- var _sqlite3_str_value = Module['_sqlite3_str_value'] = createExportWrapper('sqlite3_str_value');
5367
- var _sqlite3_str_reset = Module['_sqlite3_str_reset'] = createExportWrapper('sqlite3_str_reset');
5368
- var _sqlite3_str_new = Module['_sqlite3_str_new'] = createExportWrapper('sqlite3_str_new');
5369
- var _sqlite3_vmprintf = Module['_sqlite3_vmprintf'] = createExportWrapper('sqlite3_vmprintf');
5370
- var _sqlite3_mprintf = Module['_sqlite3_mprintf'] = createExportWrapper('sqlite3_mprintf');
5371
- var _sqlite3_vsnprintf = Module['_sqlite3_vsnprintf'] = createExportWrapper('sqlite3_vsnprintf');
5372
- var _sqlite3_snprintf = Module['_sqlite3_snprintf'] = createExportWrapper('sqlite3_snprintf');
5373
- var _sqlite3_log = Module['_sqlite3_log'] = createExportWrapper('sqlite3_log');
5374
- var _sqlite3_randomness = Module['_sqlite3_randomness'] = createExportWrapper('sqlite3_randomness');
5375
- var _sqlite3_stricmp = Module['_sqlite3_stricmp'] = createExportWrapper('sqlite3_stricmp');
5376
- var _sqlite3_strnicmp = Module['_sqlite3_strnicmp'] = createExportWrapper('sqlite3_strnicmp');
5377
- var _sqlite3_os_init = Module['_sqlite3_os_init'] = createExportWrapper('sqlite3_os_init');
5378
- var _sqlite3_os_end = Module['_sqlite3_os_end'] = createExportWrapper('sqlite3_os_end');
5379
- var _sqlite3_serialize = Module['_sqlite3_serialize'] = createExportWrapper('sqlite3_serialize');
5380
- var _sqlite3_prepare_v2 = Module['_sqlite3_prepare_v2'] = createExportWrapper('sqlite3_prepare_v2');
5381
- var _sqlite3_step = Module['_sqlite3_step'] = createExportWrapper('sqlite3_step');
5382
- var _sqlite3_column_int64 = Module['_sqlite3_column_int64'] = createExportWrapper('sqlite3_column_int64');
5383
- var _sqlite3_reset = Module['_sqlite3_reset'] = createExportWrapper('sqlite3_reset');
5384
- var _sqlite3_exec = Module['_sqlite3_exec'] = createExportWrapper('sqlite3_exec');
5385
- var _sqlite3_column_int = Module['_sqlite3_column_int'] = createExportWrapper('sqlite3_column_int');
5386
- var _sqlite3_finalize = Module['_sqlite3_finalize'] = createExportWrapper('sqlite3_finalize');
5387
- var _sqlite3_deserialize = Module['_sqlite3_deserialize'] = createExportWrapper('sqlite3_deserialize');
5388
- var _sqlite3_database_file_object = Module['_sqlite3_database_file_object'] = createExportWrapper('sqlite3_database_file_object');
5389
- var _sqlite3_backup_init = Module['_sqlite3_backup_init'] = createExportWrapper('sqlite3_backup_init');
5390
- var _sqlite3_backup_step = Module['_sqlite3_backup_step'] = createExportWrapper('sqlite3_backup_step');
5391
- var _sqlite3_backup_finish = Module['_sqlite3_backup_finish'] = createExportWrapper('sqlite3_backup_finish');
5392
- var _sqlite3_backup_remaining = Module['_sqlite3_backup_remaining'] = createExportWrapper('sqlite3_backup_remaining');
5393
- var _sqlite3_backup_pagecount = Module['_sqlite3_backup_pagecount'] = createExportWrapper('sqlite3_backup_pagecount');
5394
- var _sqlite3_clear_bindings = Module['_sqlite3_clear_bindings'] = createExportWrapper('sqlite3_clear_bindings');
5395
- var _sqlite3_value_blob = Module['_sqlite3_value_blob'] = createExportWrapper('sqlite3_value_blob');
5396
- var _sqlite3_value_text = Module['_sqlite3_value_text'] = createExportWrapper('sqlite3_value_text');
5397
- var _sqlite3_value_bytes = Module['_sqlite3_value_bytes'] = createExportWrapper('sqlite3_value_bytes');
5398
- var _sqlite3_value_bytes16 = Module['_sqlite3_value_bytes16'] = createExportWrapper('sqlite3_value_bytes16');
5399
- var _sqlite3_value_double = Module['_sqlite3_value_double'] = createExportWrapper('sqlite3_value_double');
5400
- var _sqlite3_value_int = Module['_sqlite3_value_int'] = createExportWrapper('sqlite3_value_int');
5401
- var _sqlite3_value_int64 = Module['_sqlite3_value_int64'] = createExportWrapper('sqlite3_value_int64');
5402
- var _sqlite3_value_subtype = Module['_sqlite3_value_subtype'] = createExportWrapper('sqlite3_value_subtype');
5403
- var _sqlite3_value_pointer = Module['_sqlite3_value_pointer'] = createExportWrapper('sqlite3_value_pointer');
5404
- var _sqlite3_value_text16 = Module['_sqlite3_value_text16'] = createExportWrapper('sqlite3_value_text16');
5405
- var _sqlite3_value_text16be = Module['_sqlite3_value_text16be'] = createExportWrapper('sqlite3_value_text16be');
5406
- var _sqlite3_value_text16le = Module['_sqlite3_value_text16le'] = createExportWrapper('sqlite3_value_text16le');
5407
- var _sqlite3_value_type = Module['_sqlite3_value_type'] = createExportWrapper('sqlite3_value_type');
5408
- var _sqlite3_value_encoding = Module['_sqlite3_value_encoding'] = createExportWrapper('sqlite3_value_encoding');
5409
- var _sqlite3_value_nochange = Module['_sqlite3_value_nochange'] = createExportWrapper('sqlite3_value_nochange');
5410
- var _sqlite3_value_frombind = Module['_sqlite3_value_frombind'] = createExportWrapper('sqlite3_value_frombind');
5411
- var _sqlite3_value_dup = Module['_sqlite3_value_dup'] = createExportWrapper('sqlite3_value_dup');
5412
- var _sqlite3_value_free = Module['_sqlite3_value_free'] = createExportWrapper('sqlite3_value_free');
5413
- var _sqlite3_result_blob = Module['_sqlite3_result_blob'] = createExportWrapper('sqlite3_result_blob');
5414
- var _sqlite3_result_blob64 = Module['_sqlite3_result_blob64'] = createExportWrapper('sqlite3_result_blob64');
5415
- var _sqlite3_result_double = Module['_sqlite3_result_double'] = createExportWrapper('sqlite3_result_double');
5416
- var _sqlite3_result_error = Module['_sqlite3_result_error'] = createExportWrapper('sqlite3_result_error');
5417
- var _sqlite3_result_error16 = Module['_sqlite3_result_error16'] = createExportWrapper('sqlite3_result_error16');
5418
- var _sqlite3_result_int = Module['_sqlite3_result_int'] = createExportWrapper('sqlite3_result_int');
5419
- var _sqlite3_result_int64 = Module['_sqlite3_result_int64'] = createExportWrapper('sqlite3_result_int64');
5420
- var _sqlite3_result_null = Module['_sqlite3_result_null'] = createExportWrapper('sqlite3_result_null');
5421
- var _sqlite3_result_pointer = Module['_sqlite3_result_pointer'] = createExportWrapper('sqlite3_result_pointer');
5422
- var _sqlite3_result_subtype = Module['_sqlite3_result_subtype'] = createExportWrapper('sqlite3_result_subtype');
5423
- var _sqlite3_result_text = Module['_sqlite3_result_text'] = createExportWrapper('sqlite3_result_text');
5424
- var _sqlite3_result_text64 = Module['_sqlite3_result_text64'] = createExportWrapper('sqlite3_result_text64');
5425
- var _sqlite3_result_text16 = Module['_sqlite3_result_text16'] = createExportWrapper('sqlite3_result_text16');
5426
- var _sqlite3_result_text16be = Module['_sqlite3_result_text16be'] = createExportWrapper('sqlite3_result_text16be');
5427
- var _sqlite3_result_text16le = Module['_sqlite3_result_text16le'] = createExportWrapper('sqlite3_result_text16le');
5428
- var _sqlite3_result_value = Module['_sqlite3_result_value'] = createExportWrapper('sqlite3_result_value');
5429
- var _sqlite3_result_error_toobig = Module['_sqlite3_result_error_toobig'] = createExportWrapper('sqlite3_result_error_toobig');
5430
- var _sqlite3_result_zeroblob = Module['_sqlite3_result_zeroblob'] = createExportWrapper('sqlite3_result_zeroblob');
5431
- var _sqlite3_result_zeroblob64 = Module['_sqlite3_result_zeroblob64'] = createExportWrapper('sqlite3_result_zeroblob64');
5432
- var _sqlite3_result_error_code = Module['_sqlite3_result_error_code'] = createExportWrapper('sqlite3_result_error_code');
5433
- var _sqlite3_result_error_nomem = Module['_sqlite3_result_error_nomem'] = createExportWrapper('sqlite3_result_error_nomem');
5434
- var _sqlite3_user_data = Module['_sqlite3_user_data'] = createExportWrapper('sqlite3_user_data');
5435
- var _sqlite3_context_db_handle = Module['_sqlite3_context_db_handle'] = createExportWrapper('sqlite3_context_db_handle');
5436
- var _sqlite3_vtab_nochange = Module['_sqlite3_vtab_nochange'] = createExportWrapper('sqlite3_vtab_nochange');
5437
- var _sqlite3_vtab_in_first = Module['_sqlite3_vtab_in_first'] = createExportWrapper('sqlite3_vtab_in_first');
5438
- var _sqlite3_vtab_in_next = Module['_sqlite3_vtab_in_next'] = createExportWrapper('sqlite3_vtab_in_next');
5439
- var _sqlite3_aggregate_context = Module['_sqlite3_aggregate_context'] = createExportWrapper('sqlite3_aggregate_context');
5440
- var _sqlite3_get_auxdata = Module['_sqlite3_get_auxdata'] = createExportWrapper('sqlite3_get_auxdata');
5441
- var _sqlite3_set_auxdata = Module['_sqlite3_set_auxdata'] = createExportWrapper('sqlite3_set_auxdata');
5442
- var _sqlite3_column_count = Module['_sqlite3_column_count'] = createExportWrapper('sqlite3_column_count');
5443
- var _sqlite3_data_count = Module['_sqlite3_data_count'] = createExportWrapper('sqlite3_data_count');
5444
- var _sqlite3_column_blob = Module['_sqlite3_column_blob'] = createExportWrapper('sqlite3_column_blob');
5445
- var _sqlite3_column_bytes = Module['_sqlite3_column_bytes'] = createExportWrapper('sqlite3_column_bytes');
5446
- var _sqlite3_column_bytes16 = Module['_sqlite3_column_bytes16'] = createExportWrapper('sqlite3_column_bytes16');
5447
- var _sqlite3_column_double = Module['_sqlite3_column_double'] = createExportWrapper('sqlite3_column_double');
5448
- var _sqlite3_column_text = Module['_sqlite3_column_text'] = createExportWrapper('sqlite3_column_text');
5449
- var _sqlite3_column_value = Module['_sqlite3_column_value'] = createExportWrapper('sqlite3_column_value');
5450
- var _sqlite3_column_text16 = Module['_sqlite3_column_text16'] = createExportWrapper('sqlite3_column_text16');
5451
- var _sqlite3_column_type = Module['_sqlite3_column_type'] = createExportWrapper('sqlite3_column_type');
5452
- var _sqlite3_column_name = Module['_sqlite3_column_name'] = createExportWrapper('sqlite3_column_name');
5453
- var _sqlite3_column_name16 = Module['_sqlite3_column_name16'] = createExportWrapper('sqlite3_column_name16');
5454
- var _sqlite3_bind_blob = Module['_sqlite3_bind_blob'] = createExportWrapper('sqlite3_bind_blob');
5455
- var _sqlite3_bind_blob64 = Module['_sqlite3_bind_blob64'] = createExportWrapper('sqlite3_bind_blob64');
5456
- var _sqlite3_bind_double = Module['_sqlite3_bind_double'] = createExportWrapper('sqlite3_bind_double');
5457
- var _sqlite3_bind_int = Module['_sqlite3_bind_int'] = createExportWrapper('sqlite3_bind_int');
5458
- var _sqlite3_bind_int64 = Module['_sqlite3_bind_int64'] = createExportWrapper('sqlite3_bind_int64');
5459
- var _sqlite3_bind_null = Module['_sqlite3_bind_null'] = createExportWrapper('sqlite3_bind_null');
5460
- var _sqlite3_bind_pointer = Module['_sqlite3_bind_pointer'] = createExportWrapper('sqlite3_bind_pointer');
5461
- var _sqlite3_bind_text = Module['_sqlite3_bind_text'] = createExportWrapper('sqlite3_bind_text');
5462
- var _sqlite3_bind_text64 = Module['_sqlite3_bind_text64'] = createExportWrapper('sqlite3_bind_text64');
5463
- var _sqlite3_bind_text16 = Module['_sqlite3_bind_text16'] = createExportWrapper('sqlite3_bind_text16');
5464
- var _sqlite3_bind_value = Module['_sqlite3_bind_value'] = createExportWrapper('sqlite3_bind_value');
5465
- var _sqlite3_bind_zeroblob = Module['_sqlite3_bind_zeroblob'] = createExportWrapper('sqlite3_bind_zeroblob');
5466
- var _sqlite3_bind_zeroblob64 = Module['_sqlite3_bind_zeroblob64'] = createExportWrapper('sqlite3_bind_zeroblob64');
5467
- var _sqlite3_bind_parameter_count = Module['_sqlite3_bind_parameter_count'] = createExportWrapper('sqlite3_bind_parameter_count');
5468
- var _sqlite3_bind_parameter_name = Module['_sqlite3_bind_parameter_name'] = createExportWrapper('sqlite3_bind_parameter_name');
5469
- var _sqlite3_bind_parameter_index = Module['_sqlite3_bind_parameter_index'] = createExportWrapper('sqlite3_bind_parameter_index');
5470
- var _sqlite3_db_handle = Module['_sqlite3_db_handle'] = createExportWrapper('sqlite3_db_handle');
5471
- var _sqlite3_stmt_readonly = Module['_sqlite3_stmt_readonly'] = createExportWrapper('sqlite3_stmt_readonly');
5472
- var _sqlite3_stmt_isexplain = Module['_sqlite3_stmt_isexplain'] = createExportWrapper('sqlite3_stmt_isexplain');
5473
- var _sqlite3_stmt_explain = Module['_sqlite3_stmt_explain'] = createExportWrapper('sqlite3_stmt_explain');
5474
- var _sqlite3_stmt_busy = Module['_sqlite3_stmt_busy'] = createExportWrapper('sqlite3_stmt_busy');
5475
- var _sqlite3_next_stmt = Module['_sqlite3_next_stmt'] = createExportWrapper('sqlite3_next_stmt');
5476
- var _sqlite3_stmt_status = Module['_sqlite3_stmt_status'] = createExportWrapper('sqlite3_stmt_status');
5477
- var _sqlite3_sql = Module['_sqlite3_sql'] = createExportWrapper('sqlite3_sql');
5478
- var _sqlite3_expanded_sql = Module['_sqlite3_expanded_sql'] = createExportWrapper('sqlite3_expanded_sql');
5479
- var _sqlite3_value_numeric_type = Module['_sqlite3_value_numeric_type'] = createExportWrapper('sqlite3_value_numeric_type');
5480
- var _sqlite3_blob_open = Module['_sqlite3_blob_open'] = createExportWrapper('sqlite3_blob_open');
5481
- var _sqlite3_blob_close = Module['_sqlite3_blob_close'] = createExportWrapper('sqlite3_blob_close');
5482
- var _sqlite3_blob_read = Module['_sqlite3_blob_read'] = createExportWrapper('sqlite3_blob_read');
5483
- var _sqlite3_blob_write = Module['_sqlite3_blob_write'] = createExportWrapper('sqlite3_blob_write');
5484
- var _sqlite3_blob_bytes = Module['_sqlite3_blob_bytes'] = createExportWrapper('sqlite3_blob_bytes');
5485
- var _sqlite3_blob_reopen = Module['_sqlite3_blob_reopen'] = createExportWrapper('sqlite3_blob_reopen');
5486
- var _sqlite3_set_authorizer = Module['_sqlite3_set_authorizer'] = createExportWrapper('sqlite3_set_authorizer');
5487
- var _sqlite3_strglob = Module['_sqlite3_strglob'] = createExportWrapper('sqlite3_strglob');
5488
- var _sqlite3_strlike = Module['_sqlite3_strlike'] = createExportWrapper('sqlite3_strlike');
5489
- var _sqlite3_errmsg = Module['_sqlite3_errmsg'] = createExportWrapper('sqlite3_errmsg');
5490
- var _sqlite3_auto_extension = Module['_sqlite3_auto_extension'] = createExportWrapper('sqlite3_auto_extension');
5491
- var _sqlite3_cancel_auto_extension = Module['_sqlite3_cancel_auto_extension'] = createExportWrapper('sqlite3_cancel_auto_extension');
5492
- var _sqlite3_reset_auto_extension = Module['_sqlite3_reset_auto_extension'] = createExportWrapper('sqlite3_reset_auto_extension');
5493
- var _sqlite3_prepare = Module['_sqlite3_prepare'] = createExportWrapper('sqlite3_prepare');
5494
- var _sqlite3_prepare_v3 = Module['_sqlite3_prepare_v3'] = createExportWrapper('sqlite3_prepare_v3');
5495
- var _sqlite3_prepare16 = Module['_sqlite3_prepare16'] = createExportWrapper('sqlite3_prepare16');
5496
- var _sqlite3_prepare16_v2 = Module['_sqlite3_prepare16_v2'] = createExportWrapper('sqlite3_prepare16_v2');
5497
- var _sqlite3_prepare16_v3 = Module['_sqlite3_prepare16_v3'] = createExportWrapper('sqlite3_prepare16_v3');
5498
- var _sqlite3_get_table = Module['_sqlite3_get_table'] = createExportWrapper('sqlite3_get_table');
5499
- var _sqlite3_free_table = Module['_sqlite3_free_table'] = createExportWrapper('sqlite3_free_table');
5500
- var _sqlite3_create_module = Module['_sqlite3_create_module'] = createExportWrapper('sqlite3_create_module');
5501
- var _sqlite3_create_module_v2 = Module['_sqlite3_create_module_v2'] = createExportWrapper('sqlite3_create_module_v2');
5502
- var _sqlite3_drop_modules = Module['_sqlite3_drop_modules'] = createExportWrapper('sqlite3_drop_modules');
5503
- var _sqlite3_declare_vtab = Module['_sqlite3_declare_vtab'] = createExportWrapper('sqlite3_declare_vtab');
5504
- var _sqlite3_vtab_on_conflict = Module['_sqlite3_vtab_on_conflict'] = createExportWrapper('sqlite3_vtab_on_conflict');
5505
- var _sqlite3_vtab_config = Module['_sqlite3_vtab_config'] = createExportWrapper('sqlite3_vtab_config');
5506
- var _sqlite3_vtab_collation = Module['_sqlite3_vtab_collation'] = createExportWrapper('sqlite3_vtab_collation');
5507
- var _sqlite3_vtab_in = Module['_sqlite3_vtab_in'] = createExportWrapper('sqlite3_vtab_in');
5508
- var _sqlite3_vtab_rhs_value = Module['_sqlite3_vtab_rhs_value'] = createExportWrapper('sqlite3_vtab_rhs_value');
5509
- var _sqlite3_vtab_distinct = Module['_sqlite3_vtab_distinct'] = createExportWrapper('sqlite3_vtab_distinct');
5510
- var _sqlite3_keyword_name = Module['_sqlite3_keyword_name'] = createExportWrapper('sqlite3_keyword_name');
5511
- var _sqlite3_keyword_count = Module['_sqlite3_keyword_count'] = createExportWrapper('sqlite3_keyword_count');
5512
- var _sqlite3_keyword_check = Module['_sqlite3_keyword_check'] = createExportWrapper('sqlite3_keyword_check');
5513
- var _sqlite3_complete = Module['_sqlite3_complete'] = createExportWrapper('sqlite3_complete');
5514
- var _sqlite3_complete16 = Module['_sqlite3_complete16'] = createExportWrapper('sqlite3_complete16');
5515
- var _sqlite3_libversion = Module['_sqlite3_libversion'] = createExportWrapper('sqlite3_libversion');
5516
- var _sqlite3_libversion_number = Module['_sqlite3_libversion_number'] = createExportWrapper('sqlite3_libversion_number');
5517
- var _sqlite3_threadsafe = Module['_sqlite3_threadsafe'] = createExportWrapper('sqlite3_threadsafe');
5518
- var _sqlite3_initialize = Module['_sqlite3_initialize'] = createExportWrapper('sqlite3_initialize');
5519
- var _sqlite3_shutdown = Module['_sqlite3_shutdown'] = createExportWrapper('sqlite3_shutdown');
5520
- var _sqlite3_config = Module['_sqlite3_config'] = createExportWrapper('sqlite3_config');
5521
- var _sqlite3_db_mutex = Module['_sqlite3_db_mutex'] = createExportWrapper('sqlite3_db_mutex');
5522
- var _sqlite3_db_release_memory = Module['_sqlite3_db_release_memory'] = createExportWrapper('sqlite3_db_release_memory');
5523
- var _sqlite3_db_cacheflush = Module['_sqlite3_db_cacheflush'] = createExportWrapper('sqlite3_db_cacheflush');
5524
- var _sqlite3_db_config = Module['_sqlite3_db_config'] = createExportWrapper('sqlite3_db_config');
5525
- var _sqlite3_last_insert_rowid = Module['_sqlite3_last_insert_rowid'] = createExportWrapper('sqlite3_last_insert_rowid');
5526
- var _sqlite3_set_last_insert_rowid = Module['_sqlite3_set_last_insert_rowid'] = createExportWrapper('sqlite3_set_last_insert_rowid');
5527
- var _sqlite3_changes64 = Module['_sqlite3_changes64'] = createExportWrapper('sqlite3_changes64');
5528
- var _sqlite3_changes = Module['_sqlite3_changes'] = createExportWrapper('sqlite3_changes');
5529
- var _sqlite3_total_changes64 = Module['_sqlite3_total_changes64'] = createExportWrapper('sqlite3_total_changes64');
5530
- var _sqlite3_total_changes = Module['_sqlite3_total_changes'] = createExportWrapper('sqlite3_total_changes');
5531
- var _sqlite3_txn_state = Module['_sqlite3_txn_state'] = createExportWrapper('sqlite3_txn_state');
5532
- var _sqlite3_close = Module['_sqlite3_close'] = createExportWrapper('sqlite3_close');
5533
- var _sqlite3_close_v2 = Module['_sqlite3_close_v2'] = createExportWrapper('sqlite3_close_v2');
5534
- var _sqlite3_busy_handler = Module['_sqlite3_busy_handler'] = createExportWrapper('sqlite3_busy_handler');
5535
- var _sqlite3_progress_handler = Module['_sqlite3_progress_handler'] = createExportWrapper('sqlite3_progress_handler');
5536
- var _sqlite3_busy_timeout = Module['_sqlite3_busy_timeout'] = createExportWrapper('sqlite3_busy_timeout');
5537
- var _sqlite3_interrupt = Module['_sqlite3_interrupt'] = createExportWrapper('sqlite3_interrupt');
5538
- var _sqlite3_is_interrupted = Module['_sqlite3_is_interrupted'] = createExportWrapper('sqlite3_is_interrupted');
5539
- var _sqlite3_create_function = Module['_sqlite3_create_function'] = createExportWrapper('sqlite3_create_function');
5540
- var _sqlite3_create_function_v2 = Module['_sqlite3_create_function_v2'] = createExportWrapper('sqlite3_create_function_v2');
5541
- var _sqlite3_create_window_function = Module['_sqlite3_create_window_function'] = createExportWrapper('sqlite3_create_window_function');
5542
- var _sqlite3_create_function16 = Module['_sqlite3_create_function16'] = createExportWrapper('sqlite3_create_function16');
5543
- var _sqlite3_overload_function = Module['_sqlite3_overload_function'] = createExportWrapper('sqlite3_overload_function');
5544
- var _sqlite3_trace_v2 = Module['_sqlite3_trace_v2'] = createExportWrapper('sqlite3_trace_v2');
5545
- var _sqlite3_commit_hook = Module['_sqlite3_commit_hook'] = createExportWrapper('sqlite3_commit_hook');
5546
- var _sqlite3_update_hook = Module['_sqlite3_update_hook'] = createExportWrapper('sqlite3_update_hook');
5547
- var _sqlite3_rollback_hook = Module['_sqlite3_rollback_hook'] = createExportWrapper('sqlite3_rollback_hook');
5548
- var _sqlite3_autovacuum_pages = Module['_sqlite3_autovacuum_pages'] = createExportWrapper('sqlite3_autovacuum_pages');
5549
- var _sqlite3_wal_autocheckpoint = Module['_sqlite3_wal_autocheckpoint'] = createExportWrapper('sqlite3_wal_autocheckpoint');
5550
- var _sqlite3_wal_hook = Module['_sqlite3_wal_hook'] = createExportWrapper('sqlite3_wal_hook');
5551
- var _sqlite3_wal_checkpoint_v2 = Module['_sqlite3_wal_checkpoint_v2'] = createExportWrapper('sqlite3_wal_checkpoint_v2');
5552
- var _sqlite3_wal_checkpoint = Module['_sqlite3_wal_checkpoint'] = createExportWrapper('sqlite3_wal_checkpoint');
5553
- var _sqlite3_error_offset = Module['_sqlite3_error_offset'] = createExportWrapper('sqlite3_error_offset');
5554
- var _sqlite3_errmsg16 = Module['_sqlite3_errmsg16'] = createExportWrapper('sqlite3_errmsg16');
5555
- var _sqlite3_errcode = Module['_sqlite3_errcode'] = createExportWrapper('sqlite3_errcode');
5556
- var _sqlite3_extended_errcode = Module['_sqlite3_extended_errcode'] = createExportWrapper('sqlite3_extended_errcode');
5557
- var _sqlite3_system_errno = Module['_sqlite3_system_errno'] = createExportWrapper('sqlite3_system_errno');
5558
- var _sqlite3_errstr = Module['_sqlite3_errstr'] = createExportWrapper('sqlite3_errstr');
5559
- var _sqlite3_limit = Module['_sqlite3_limit'] = createExportWrapper('sqlite3_limit');
5560
- var _sqlite3_open = Module['_sqlite3_open'] = createExportWrapper('sqlite3_open');
5561
- var _sqlite3_open_v2 = Module['_sqlite3_open_v2'] = createExportWrapper('sqlite3_open_v2');
5562
- var _sqlite3_open16 = Module['_sqlite3_open16'] = createExportWrapper('sqlite3_open16');
5563
- var _sqlite3_create_collation = Module['_sqlite3_create_collation'] = createExportWrapper('sqlite3_create_collation');
5564
- var _sqlite3_create_collation_v2 = Module['_sqlite3_create_collation_v2'] = createExportWrapper('sqlite3_create_collation_v2');
5565
- var _sqlite3_create_collation16 = Module['_sqlite3_create_collation16'] = createExportWrapper('sqlite3_create_collation16');
5566
- var _sqlite3_collation_needed = Module['_sqlite3_collation_needed'] = createExportWrapper('sqlite3_collation_needed');
5567
- var _sqlite3_collation_needed16 = Module['_sqlite3_collation_needed16'] = createExportWrapper('sqlite3_collation_needed16');
5568
- var _sqlite3_get_clientdata = Module['_sqlite3_get_clientdata'] = createExportWrapper('sqlite3_get_clientdata');
5569
- var _sqlite3_set_clientdata = Module['_sqlite3_set_clientdata'] = createExportWrapper('sqlite3_set_clientdata');
5570
- var _sqlite3_get_autocommit = Module['_sqlite3_get_autocommit'] = createExportWrapper('sqlite3_get_autocommit');
5571
- var _sqlite3_table_column_metadata = Module['_sqlite3_table_column_metadata'] = createExportWrapper('sqlite3_table_column_metadata');
5572
- var _sqlite3_sleep = Module['_sqlite3_sleep'] = createExportWrapper('sqlite3_sleep');
5573
- var _sqlite3_extended_result_codes = Module['_sqlite3_extended_result_codes'] = createExportWrapper('sqlite3_extended_result_codes');
5574
- var _sqlite3_file_control = Module['_sqlite3_file_control'] = createExportWrapper('sqlite3_file_control');
5575
- var _sqlite3_test_control = Module['_sqlite3_test_control'] = createExportWrapper('sqlite3_test_control');
5576
- var _sqlite3_create_filename = Module['_sqlite3_create_filename'] = createExportWrapper('sqlite3_create_filename');
5577
- var _sqlite3_free_filename = Module['_sqlite3_free_filename'] = createExportWrapper('sqlite3_free_filename');
5578
- var _sqlite3_uri_parameter = Module['_sqlite3_uri_parameter'] = createExportWrapper('sqlite3_uri_parameter');
5579
- var _sqlite3_uri_key = Module['_sqlite3_uri_key'] = createExportWrapper('sqlite3_uri_key');
5580
- var _sqlite3_uri_boolean = Module['_sqlite3_uri_boolean'] = createExportWrapper('sqlite3_uri_boolean');
5581
- var _sqlite3_uri_int64 = Module['_sqlite3_uri_int64'] = createExportWrapper('sqlite3_uri_int64');
5582
- var _sqlite3_filename_database = Module['_sqlite3_filename_database'] = createExportWrapper('sqlite3_filename_database');
5583
- var _sqlite3_filename_journal = Module['_sqlite3_filename_journal'] = createExportWrapper('sqlite3_filename_journal');
5584
- var _sqlite3_filename_wal = Module['_sqlite3_filename_wal'] = createExportWrapper('sqlite3_filename_wal');
5585
- var _sqlite3_db_name = Module['_sqlite3_db_name'] = createExportWrapper('sqlite3_db_name');
5586
- var _sqlite3_db_filename = Module['_sqlite3_db_filename'] = createExportWrapper('sqlite3_db_filename');
5587
- var _sqlite3_db_readonly = Module['_sqlite3_db_readonly'] = createExportWrapper('sqlite3_db_readonly');
5588
- var _sqlite3_compileoption_used = Module['_sqlite3_compileoption_used'] = createExportWrapper('sqlite3_compileoption_used');
5589
- var _sqlite3_compileoption_get = Module['_sqlite3_compileoption_get'] = createExportWrapper('sqlite3_compileoption_get');
5590
- var _sqlite3session_create = Module['_sqlite3session_create'] = createExportWrapper('sqlite3session_create');
5591
- var _sqlite3session_delete = Module['_sqlite3session_delete'] = createExportWrapper('sqlite3session_delete');
5592
- var _sqlite3session_attach = Module['_sqlite3session_attach'] = createExportWrapper('sqlite3session_attach');
5593
- var _sqlite3session_changeset = Module['_sqlite3session_changeset'] = createExportWrapper('sqlite3session_changeset');
5594
- var _sqlite3session_enable = Module['_sqlite3session_enable'] = createExportWrapper('sqlite3session_enable');
5595
- var _sqlite3changeset_start = Module['_sqlite3changeset_start'] = createExportWrapper('sqlite3changeset_start');
5596
- var _sqlite3changeset_finalize = Module['_sqlite3changeset_finalize'] = createExportWrapper('sqlite3changeset_finalize');
5597
- var _sqlite3changeset_invert = Module['_sqlite3changeset_invert'] = createExportWrapper('sqlite3changeset_invert');
5598
- var _sqlite3changeset_apply = Module['_sqlite3changeset_apply'] = createExportWrapper('sqlite3changeset_apply');
5599
- var _sqlite3_sourceid = Module['_sqlite3_sourceid'] = createExportWrapper('sqlite3_sourceid');
5600
- var ___errno_location = createExportWrapper('__errno_location');
5601
- var _malloc = Module['_malloc'] = createExportWrapper('malloc');
5602
- var _free = Module['_free'] = createExportWrapper('free');
5603
- var _RegisterExtensionFunctions = Module['_RegisterExtensionFunctions'] = createExportWrapper('RegisterExtensionFunctions');
5604
- var _getSqliteFree = Module['_getSqliteFree'] = createExportWrapper('getSqliteFree');
5605
- var _main = Module['_main'] = createExportWrapper('main');
5606
- var _libauthorizer_set_authorizer = Module['_libauthorizer_set_authorizer'] = createExportWrapper('libauthorizer_set_authorizer');
5607
- var _libfunction_create_function = Module['_libfunction_create_function'] = createExportWrapper('libfunction_create_function');
5608
- var _libhook_update_hook = Module['_libhook_update_hook'] = createExportWrapper('libhook_update_hook');
5609
- var _libprogress_progress_handler = Module['_libprogress_progress_handler'] = createExportWrapper('libprogress_progress_handler');
5610
- var _libvfs_vfs_register = Module['_libvfs_vfs_register'] = createExportWrapper('libvfs_vfs_register');
5611
- var _fflush = Module['_fflush'] = createExportWrapper('fflush');
5612
- var _emscripten_builtin_memalign = createExportWrapper('emscripten_builtin_memalign');
5613
- var setTempRet0 = createExportWrapper('setTempRet0');
5614
- var getTempRet0 = createExportWrapper('getTempRet0');
5114
+ var ___wasm_call_ctors = createExportWrapper('__wasm_call_ctors', 0);
5115
+ var _sqlite3_status64 = Module['_sqlite3_status64'] = createExportWrapper('sqlite3_status64', 4);
5116
+ var _sqlite3_status = Module['_sqlite3_status'] = createExportWrapper('sqlite3_status', 4);
5117
+ var _sqlite3_db_status = Module['_sqlite3_db_status'] = createExportWrapper('sqlite3_db_status', 5);
5118
+ var _sqlite3_msize = Module['_sqlite3_msize'] = createExportWrapper('sqlite3_msize', 1);
5119
+ var _sqlite3_vfs_find = Module['_sqlite3_vfs_find'] = createExportWrapper('sqlite3_vfs_find', 1);
5120
+ var _sqlite3_vfs_register = Module['_sqlite3_vfs_register'] = createExportWrapper('sqlite3_vfs_register', 2);
5121
+ var _sqlite3_vfs_unregister = Module['_sqlite3_vfs_unregister'] = createExportWrapper('sqlite3_vfs_unregister', 1);
5122
+ var _sqlite3_release_memory = Module['_sqlite3_release_memory'] = createExportWrapper('sqlite3_release_memory', 1);
5123
+ var _sqlite3_soft_heap_limit64 = Module['_sqlite3_soft_heap_limit64'] = createExportWrapper('sqlite3_soft_heap_limit64', 2);
5124
+ var _sqlite3_memory_used = Module['_sqlite3_memory_used'] = createExportWrapper('sqlite3_memory_used', 0);
5125
+ var _sqlite3_hard_heap_limit64 = Module['_sqlite3_hard_heap_limit64'] = createExportWrapper('sqlite3_hard_heap_limit64', 2);
5126
+ var _sqlite3_memory_highwater = Module['_sqlite3_memory_highwater'] = createExportWrapper('sqlite3_memory_highwater', 1);
5127
+ var _sqlite3_malloc = Module['_sqlite3_malloc'] = createExportWrapper('sqlite3_malloc', 1);
5128
+ var _sqlite3_malloc64 = Module['_sqlite3_malloc64'] = createExportWrapper('sqlite3_malloc64', 2);
5129
+ var _sqlite3_free = Module['_sqlite3_free'] = createExportWrapper('sqlite3_free', 1);
5130
+ var _sqlite3_realloc = Module['_sqlite3_realloc'] = createExportWrapper('sqlite3_realloc', 2);
5131
+ var _sqlite3_realloc64 = Module['_sqlite3_realloc64'] = createExportWrapper('sqlite3_realloc64', 3);
5132
+ var _sqlite3_str_vappendf = Module['_sqlite3_str_vappendf'] = createExportWrapper('sqlite3_str_vappendf', 3);
5133
+ var _sqlite3_str_append = Module['_sqlite3_str_append'] = createExportWrapper('sqlite3_str_append', 3);
5134
+ var _sqlite3_str_appendchar = Module['_sqlite3_str_appendchar'] = createExportWrapper('sqlite3_str_appendchar', 3);
5135
+ var _sqlite3_str_appendall = Module['_sqlite3_str_appendall'] = createExportWrapper('sqlite3_str_appendall', 2);
5136
+ var _sqlite3_str_appendf = Module['_sqlite3_str_appendf'] = createExportWrapper('sqlite3_str_appendf', 3);
5137
+ var _sqlite3_str_finish = Module['_sqlite3_str_finish'] = createExportWrapper('sqlite3_str_finish', 1);
5138
+ var _sqlite3_str_errcode = Module['_sqlite3_str_errcode'] = createExportWrapper('sqlite3_str_errcode', 1);
5139
+ var _sqlite3_str_length = Module['_sqlite3_str_length'] = createExportWrapper('sqlite3_str_length', 1);
5140
+ var _sqlite3_str_value = Module['_sqlite3_str_value'] = createExportWrapper('sqlite3_str_value', 1);
5141
+ var _sqlite3_str_reset = Module['_sqlite3_str_reset'] = createExportWrapper('sqlite3_str_reset', 1);
5142
+ var _sqlite3_str_new = Module['_sqlite3_str_new'] = createExportWrapper('sqlite3_str_new', 1);
5143
+ var _sqlite3_vmprintf = Module['_sqlite3_vmprintf'] = createExportWrapper('sqlite3_vmprintf', 2);
5144
+ var _sqlite3_mprintf = Module['_sqlite3_mprintf'] = createExportWrapper('sqlite3_mprintf', 2);
5145
+ var _sqlite3_vsnprintf = Module['_sqlite3_vsnprintf'] = createExportWrapper('sqlite3_vsnprintf', 4);
5146
+ var _sqlite3_snprintf = Module['_sqlite3_snprintf'] = createExportWrapper('sqlite3_snprintf', 4);
5147
+ var _sqlite3_log = Module['_sqlite3_log'] = createExportWrapper('sqlite3_log', 3);
5148
+ var _sqlite3_randomness = Module['_sqlite3_randomness'] = createExportWrapper('sqlite3_randomness', 2);
5149
+ var _sqlite3_stricmp = Module['_sqlite3_stricmp'] = createExportWrapper('sqlite3_stricmp', 2);
5150
+ var _sqlite3_strnicmp = Module['_sqlite3_strnicmp'] = createExportWrapper('sqlite3_strnicmp', 3);
5151
+ var _sqlite3_os_init = Module['_sqlite3_os_init'] = createExportWrapper('sqlite3_os_init', 0);
5152
+ var _sqlite3_os_end = Module['_sqlite3_os_end'] = createExportWrapper('sqlite3_os_end', 0);
5153
+ var _sqlite3_serialize = Module['_sqlite3_serialize'] = createExportWrapper('sqlite3_serialize', 4);
5154
+ var _sqlite3_prepare_v2 = Module['_sqlite3_prepare_v2'] = createExportWrapper('sqlite3_prepare_v2', 5);
5155
+ var _sqlite3_step = Module['_sqlite3_step'] = createExportWrapper('sqlite3_step', 1);
5156
+ var _sqlite3_column_int64 = Module['_sqlite3_column_int64'] = createExportWrapper('sqlite3_column_int64', 2);
5157
+ var _sqlite3_reset = Module['_sqlite3_reset'] = createExportWrapper('sqlite3_reset', 1);
5158
+ var _sqlite3_exec = Module['_sqlite3_exec'] = createExportWrapper('sqlite3_exec', 5);
5159
+ var _sqlite3_column_int = Module['_sqlite3_column_int'] = createExportWrapper('sqlite3_column_int', 2);
5160
+ var _sqlite3_finalize = Module['_sqlite3_finalize'] = createExportWrapper('sqlite3_finalize', 1);
5161
+ var _sqlite3_deserialize = Module['_sqlite3_deserialize'] = createExportWrapper('sqlite3_deserialize', 8);
5162
+ var _sqlite3_database_file_object = Module['_sqlite3_database_file_object'] = createExportWrapper('sqlite3_database_file_object', 1);
5163
+ var _sqlite3_backup_init = Module['_sqlite3_backup_init'] = createExportWrapper('sqlite3_backup_init', 4);
5164
+ var _sqlite3_backup_step = Module['_sqlite3_backup_step'] = createExportWrapper('sqlite3_backup_step', 2);
5165
+ var _sqlite3_backup_finish = Module['_sqlite3_backup_finish'] = createExportWrapper('sqlite3_backup_finish', 1);
5166
+ var _sqlite3_backup_remaining = Module['_sqlite3_backup_remaining'] = createExportWrapper('sqlite3_backup_remaining', 1);
5167
+ var _sqlite3_backup_pagecount = Module['_sqlite3_backup_pagecount'] = createExportWrapper('sqlite3_backup_pagecount', 1);
5168
+ var _sqlite3_clear_bindings = Module['_sqlite3_clear_bindings'] = createExportWrapper('sqlite3_clear_bindings', 1);
5169
+ var _sqlite3_value_blob = Module['_sqlite3_value_blob'] = createExportWrapper('sqlite3_value_blob', 1);
5170
+ var _sqlite3_value_text = Module['_sqlite3_value_text'] = createExportWrapper('sqlite3_value_text', 1);
5171
+ var _sqlite3_value_bytes = Module['_sqlite3_value_bytes'] = createExportWrapper('sqlite3_value_bytes', 1);
5172
+ var _sqlite3_value_bytes16 = Module['_sqlite3_value_bytes16'] = createExportWrapper('sqlite3_value_bytes16', 1);
5173
+ var _sqlite3_value_double = Module['_sqlite3_value_double'] = createExportWrapper('sqlite3_value_double', 1);
5174
+ var _sqlite3_value_int = Module['_sqlite3_value_int'] = createExportWrapper('sqlite3_value_int', 1);
5175
+ var _sqlite3_value_int64 = Module['_sqlite3_value_int64'] = createExportWrapper('sqlite3_value_int64', 1);
5176
+ var _sqlite3_value_subtype = Module['_sqlite3_value_subtype'] = createExportWrapper('sqlite3_value_subtype', 1);
5177
+ var _sqlite3_value_pointer = Module['_sqlite3_value_pointer'] = createExportWrapper('sqlite3_value_pointer', 2);
5178
+ var _sqlite3_value_text16 = Module['_sqlite3_value_text16'] = createExportWrapper('sqlite3_value_text16', 1);
5179
+ var _sqlite3_value_text16be = Module['_sqlite3_value_text16be'] = createExportWrapper('sqlite3_value_text16be', 1);
5180
+ var _sqlite3_value_text16le = Module['_sqlite3_value_text16le'] = createExportWrapper('sqlite3_value_text16le', 1);
5181
+ var _sqlite3_value_type = Module['_sqlite3_value_type'] = createExportWrapper('sqlite3_value_type', 1);
5182
+ var _sqlite3_value_encoding = Module['_sqlite3_value_encoding'] = createExportWrapper('sqlite3_value_encoding', 1);
5183
+ var _sqlite3_value_nochange = Module['_sqlite3_value_nochange'] = createExportWrapper('sqlite3_value_nochange', 1);
5184
+ var _sqlite3_value_frombind = Module['_sqlite3_value_frombind'] = createExportWrapper('sqlite3_value_frombind', 1);
5185
+ var _sqlite3_value_dup = Module['_sqlite3_value_dup'] = createExportWrapper('sqlite3_value_dup', 1);
5186
+ var _sqlite3_value_free = Module['_sqlite3_value_free'] = createExportWrapper('sqlite3_value_free', 1);
5187
+ var _sqlite3_result_blob = Module['_sqlite3_result_blob'] = createExportWrapper('sqlite3_result_blob', 4);
5188
+ var _sqlite3_result_blob64 = Module['_sqlite3_result_blob64'] = createExportWrapper('sqlite3_result_blob64', 5);
5189
+ var _sqlite3_result_double = Module['_sqlite3_result_double'] = createExportWrapper('sqlite3_result_double', 2);
5190
+ var _sqlite3_result_error = Module['_sqlite3_result_error'] = createExportWrapper('sqlite3_result_error', 3);
5191
+ var _sqlite3_result_error16 = Module['_sqlite3_result_error16'] = createExportWrapper('sqlite3_result_error16', 3);
5192
+ var _sqlite3_result_int = Module['_sqlite3_result_int'] = createExportWrapper('sqlite3_result_int', 2);
5193
+ var _sqlite3_result_int64 = Module['_sqlite3_result_int64'] = createExportWrapper('sqlite3_result_int64', 3);
5194
+ var _sqlite3_result_null = Module['_sqlite3_result_null'] = createExportWrapper('sqlite3_result_null', 1);
5195
+ var _sqlite3_result_pointer = Module['_sqlite3_result_pointer'] = createExportWrapper('sqlite3_result_pointer', 4);
5196
+ var _sqlite3_result_subtype = Module['_sqlite3_result_subtype'] = createExportWrapper('sqlite3_result_subtype', 2);
5197
+ var _sqlite3_result_text = Module['_sqlite3_result_text'] = createExportWrapper('sqlite3_result_text', 4);
5198
+ var _sqlite3_result_text64 = Module['_sqlite3_result_text64'] = createExportWrapper('sqlite3_result_text64', 6);
5199
+ var _sqlite3_result_text16 = Module['_sqlite3_result_text16'] = createExportWrapper('sqlite3_result_text16', 4);
5200
+ var _sqlite3_result_text16be = Module['_sqlite3_result_text16be'] = createExportWrapper('sqlite3_result_text16be', 4);
5201
+ var _sqlite3_result_text16le = Module['_sqlite3_result_text16le'] = createExportWrapper('sqlite3_result_text16le', 4);
5202
+ var _sqlite3_result_value = Module['_sqlite3_result_value'] = createExportWrapper('sqlite3_result_value', 2);
5203
+ var _sqlite3_result_error_toobig = Module['_sqlite3_result_error_toobig'] = createExportWrapper('sqlite3_result_error_toobig', 1);
5204
+ var _sqlite3_result_zeroblob = Module['_sqlite3_result_zeroblob'] = createExportWrapper('sqlite3_result_zeroblob', 2);
5205
+ var _sqlite3_result_zeroblob64 = Module['_sqlite3_result_zeroblob64'] = createExportWrapper('sqlite3_result_zeroblob64', 3);
5206
+ var _sqlite3_result_error_code = Module['_sqlite3_result_error_code'] = createExportWrapper('sqlite3_result_error_code', 2);
5207
+ var _sqlite3_result_error_nomem = Module['_sqlite3_result_error_nomem'] = createExportWrapper('sqlite3_result_error_nomem', 1);
5208
+ var _sqlite3_user_data = Module['_sqlite3_user_data'] = createExportWrapper('sqlite3_user_data', 1);
5209
+ var _sqlite3_context_db_handle = Module['_sqlite3_context_db_handle'] = createExportWrapper('sqlite3_context_db_handle', 1);
5210
+ var _sqlite3_vtab_nochange = Module['_sqlite3_vtab_nochange'] = createExportWrapper('sqlite3_vtab_nochange', 1);
5211
+ var _sqlite3_vtab_in_first = Module['_sqlite3_vtab_in_first'] = createExportWrapper('sqlite3_vtab_in_first', 2);
5212
+ var _sqlite3_vtab_in_next = Module['_sqlite3_vtab_in_next'] = createExportWrapper('sqlite3_vtab_in_next', 2);
5213
+ var _sqlite3_aggregate_context = Module['_sqlite3_aggregate_context'] = createExportWrapper('sqlite3_aggregate_context', 2);
5214
+ var _sqlite3_get_auxdata = Module['_sqlite3_get_auxdata'] = createExportWrapper('sqlite3_get_auxdata', 2);
5215
+ var _sqlite3_set_auxdata = Module['_sqlite3_set_auxdata'] = createExportWrapper('sqlite3_set_auxdata', 4);
5216
+ var _sqlite3_column_count = Module['_sqlite3_column_count'] = createExportWrapper('sqlite3_column_count', 1);
5217
+ var _sqlite3_data_count = Module['_sqlite3_data_count'] = createExportWrapper('sqlite3_data_count', 1);
5218
+ var _sqlite3_column_blob = Module['_sqlite3_column_blob'] = createExportWrapper('sqlite3_column_blob', 2);
5219
+ var _sqlite3_column_bytes = Module['_sqlite3_column_bytes'] = createExportWrapper('sqlite3_column_bytes', 2);
5220
+ var _sqlite3_column_bytes16 = Module['_sqlite3_column_bytes16'] = createExportWrapper('sqlite3_column_bytes16', 2);
5221
+ var _sqlite3_column_double = Module['_sqlite3_column_double'] = createExportWrapper('sqlite3_column_double', 2);
5222
+ var _sqlite3_column_text = Module['_sqlite3_column_text'] = createExportWrapper('sqlite3_column_text', 2);
5223
+ var _sqlite3_column_value = Module['_sqlite3_column_value'] = createExportWrapper('sqlite3_column_value', 2);
5224
+ var _sqlite3_column_text16 = Module['_sqlite3_column_text16'] = createExportWrapper('sqlite3_column_text16', 2);
5225
+ var _sqlite3_column_type = Module['_sqlite3_column_type'] = createExportWrapper('sqlite3_column_type', 2);
5226
+ var _sqlite3_column_name = Module['_sqlite3_column_name'] = createExportWrapper('sqlite3_column_name', 2);
5227
+ var _sqlite3_column_name16 = Module['_sqlite3_column_name16'] = createExportWrapper('sqlite3_column_name16', 2);
5228
+ var _sqlite3_bind_blob = Module['_sqlite3_bind_blob'] = createExportWrapper('sqlite3_bind_blob', 5);
5229
+ var _sqlite3_bind_blob64 = Module['_sqlite3_bind_blob64'] = createExportWrapper('sqlite3_bind_blob64', 6);
5230
+ var _sqlite3_bind_double = Module['_sqlite3_bind_double'] = createExportWrapper('sqlite3_bind_double', 3);
5231
+ var _sqlite3_bind_int = Module['_sqlite3_bind_int'] = createExportWrapper('sqlite3_bind_int', 3);
5232
+ var _sqlite3_bind_int64 = Module['_sqlite3_bind_int64'] = createExportWrapper('sqlite3_bind_int64', 4);
5233
+ var _sqlite3_bind_null = Module['_sqlite3_bind_null'] = createExportWrapper('sqlite3_bind_null', 2);
5234
+ var _sqlite3_bind_pointer = Module['_sqlite3_bind_pointer'] = createExportWrapper('sqlite3_bind_pointer', 5);
5235
+ var _sqlite3_bind_text = Module['_sqlite3_bind_text'] = createExportWrapper('sqlite3_bind_text', 5);
5236
+ var _sqlite3_bind_text64 = Module['_sqlite3_bind_text64'] = createExportWrapper('sqlite3_bind_text64', 7);
5237
+ var _sqlite3_bind_text16 = Module['_sqlite3_bind_text16'] = createExportWrapper('sqlite3_bind_text16', 5);
5238
+ var _sqlite3_bind_value = Module['_sqlite3_bind_value'] = createExportWrapper('sqlite3_bind_value', 3);
5239
+ var _sqlite3_bind_zeroblob = Module['_sqlite3_bind_zeroblob'] = createExportWrapper('sqlite3_bind_zeroblob', 3);
5240
+ var _sqlite3_bind_zeroblob64 = Module['_sqlite3_bind_zeroblob64'] = createExportWrapper('sqlite3_bind_zeroblob64', 4);
5241
+ var _sqlite3_bind_parameter_count = Module['_sqlite3_bind_parameter_count'] = createExportWrapper('sqlite3_bind_parameter_count', 1);
5242
+ var _sqlite3_bind_parameter_name = Module['_sqlite3_bind_parameter_name'] = createExportWrapper('sqlite3_bind_parameter_name', 2);
5243
+ var _sqlite3_bind_parameter_index = Module['_sqlite3_bind_parameter_index'] = createExportWrapper('sqlite3_bind_parameter_index', 2);
5244
+ var _sqlite3_db_handle = Module['_sqlite3_db_handle'] = createExportWrapper('sqlite3_db_handle', 1);
5245
+ var _sqlite3_stmt_readonly = Module['_sqlite3_stmt_readonly'] = createExportWrapper('sqlite3_stmt_readonly', 1);
5246
+ var _sqlite3_stmt_isexplain = Module['_sqlite3_stmt_isexplain'] = createExportWrapper('sqlite3_stmt_isexplain', 1);
5247
+ var _sqlite3_stmt_explain = Module['_sqlite3_stmt_explain'] = createExportWrapper('sqlite3_stmt_explain', 2);
5248
+ var _sqlite3_stmt_busy = Module['_sqlite3_stmt_busy'] = createExportWrapper('sqlite3_stmt_busy', 1);
5249
+ var _sqlite3_next_stmt = Module['_sqlite3_next_stmt'] = createExportWrapper('sqlite3_next_stmt', 2);
5250
+ var _sqlite3_stmt_status = Module['_sqlite3_stmt_status'] = createExportWrapper('sqlite3_stmt_status', 3);
5251
+ var _sqlite3_sql = Module['_sqlite3_sql'] = createExportWrapper('sqlite3_sql', 1);
5252
+ var _sqlite3_expanded_sql = Module['_sqlite3_expanded_sql'] = createExportWrapper('sqlite3_expanded_sql', 1);
5253
+ var _sqlite3_value_numeric_type = Module['_sqlite3_value_numeric_type'] = createExportWrapper('sqlite3_value_numeric_type', 1);
5254
+ var _sqlite3_blob_open = Module['_sqlite3_blob_open'] = createExportWrapper('sqlite3_blob_open', 8);
5255
+ var _sqlite3_blob_close = Module['_sqlite3_blob_close'] = createExportWrapper('sqlite3_blob_close', 1);
5256
+ var _sqlite3_blob_read = Module['_sqlite3_blob_read'] = createExportWrapper('sqlite3_blob_read', 4);
5257
+ var _sqlite3_blob_write = Module['_sqlite3_blob_write'] = createExportWrapper('sqlite3_blob_write', 4);
5258
+ var _sqlite3_blob_bytes = Module['_sqlite3_blob_bytes'] = createExportWrapper('sqlite3_blob_bytes', 1);
5259
+ var _sqlite3_blob_reopen = Module['_sqlite3_blob_reopen'] = createExportWrapper('sqlite3_blob_reopen', 3);
5260
+ var _sqlite3_set_authorizer = Module['_sqlite3_set_authorizer'] = createExportWrapper('sqlite3_set_authorizer', 3);
5261
+ var _sqlite3_strglob = Module['_sqlite3_strglob'] = createExportWrapper('sqlite3_strglob', 2);
5262
+ var _sqlite3_strlike = Module['_sqlite3_strlike'] = createExportWrapper('sqlite3_strlike', 3);
5263
+ var _sqlite3_errmsg = Module['_sqlite3_errmsg'] = createExportWrapper('sqlite3_errmsg', 1);
5264
+ var _sqlite3_auto_extension = Module['_sqlite3_auto_extension'] = createExportWrapper('sqlite3_auto_extension', 1);
5265
+ var _sqlite3_cancel_auto_extension = Module['_sqlite3_cancel_auto_extension'] = createExportWrapper('sqlite3_cancel_auto_extension', 1);
5266
+ var _sqlite3_reset_auto_extension = Module['_sqlite3_reset_auto_extension'] = createExportWrapper('sqlite3_reset_auto_extension', 0);
5267
+ var _sqlite3_prepare = Module['_sqlite3_prepare'] = createExportWrapper('sqlite3_prepare', 5);
5268
+ var _sqlite3_prepare_v3 = Module['_sqlite3_prepare_v3'] = createExportWrapper('sqlite3_prepare_v3', 6);
5269
+ var _sqlite3_prepare16 = Module['_sqlite3_prepare16'] = createExportWrapper('sqlite3_prepare16', 5);
5270
+ var _sqlite3_prepare16_v2 = Module['_sqlite3_prepare16_v2'] = createExportWrapper('sqlite3_prepare16_v2', 5);
5271
+ var _sqlite3_prepare16_v3 = Module['_sqlite3_prepare16_v3'] = createExportWrapper('sqlite3_prepare16_v3', 6);
5272
+ var _sqlite3_get_table = Module['_sqlite3_get_table'] = createExportWrapper('sqlite3_get_table', 6);
5273
+ var _sqlite3_free_table = Module['_sqlite3_free_table'] = createExportWrapper('sqlite3_free_table', 1);
5274
+ var _sqlite3_create_module = Module['_sqlite3_create_module'] = createExportWrapper('sqlite3_create_module', 4);
5275
+ var _sqlite3_create_module_v2 = Module['_sqlite3_create_module_v2'] = createExportWrapper('sqlite3_create_module_v2', 5);
5276
+ var _sqlite3_drop_modules = Module['_sqlite3_drop_modules'] = createExportWrapper('sqlite3_drop_modules', 2);
5277
+ var _sqlite3_declare_vtab = Module['_sqlite3_declare_vtab'] = createExportWrapper('sqlite3_declare_vtab', 2);
5278
+ var _sqlite3_vtab_on_conflict = Module['_sqlite3_vtab_on_conflict'] = createExportWrapper('sqlite3_vtab_on_conflict', 1);
5279
+ var _sqlite3_vtab_config = Module['_sqlite3_vtab_config'] = createExportWrapper('sqlite3_vtab_config', 3);
5280
+ var _sqlite3_vtab_collation = Module['_sqlite3_vtab_collation'] = createExportWrapper('sqlite3_vtab_collation', 2);
5281
+ var _sqlite3_vtab_in = Module['_sqlite3_vtab_in'] = createExportWrapper('sqlite3_vtab_in', 3);
5282
+ var _sqlite3_vtab_rhs_value = Module['_sqlite3_vtab_rhs_value'] = createExportWrapper('sqlite3_vtab_rhs_value', 3);
5283
+ var _sqlite3_vtab_distinct = Module['_sqlite3_vtab_distinct'] = createExportWrapper('sqlite3_vtab_distinct', 1);
5284
+ var _sqlite3_keyword_name = Module['_sqlite3_keyword_name'] = createExportWrapper('sqlite3_keyword_name', 3);
5285
+ var _sqlite3_keyword_count = Module['_sqlite3_keyword_count'] = createExportWrapper('sqlite3_keyword_count', 0);
5286
+ var _sqlite3_keyword_check = Module['_sqlite3_keyword_check'] = createExportWrapper('sqlite3_keyword_check', 2);
5287
+ var _sqlite3_complete = Module['_sqlite3_complete'] = createExportWrapper('sqlite3_complete', 1);
5288
+ var _sqlite3_complete16 = Module['_sqlite3_complete16'] = createExportWrapper('sqlite3_complete16', 1);
5289
+ var _sqlite3_libversion = Module['_sqlite3_libversion'] = createExportWrapper('sqlite3_libversion', 0);
5290
+ var _sqlite3_libversion_number = Module['_sqlite3_libversion_number'] = createExportWrapper('sqlite3_libversion_number', 0);
5291
+ var _sqlite3_threadsafe = Module['_sqlite3_threadsafe'] = createExportWrapper('sqlite3_threadsafe', 0);
5292
+ var _sqlite3_initialize = Module['_sqlite3_initialize'] = createExportWrapper('sqlite3_initialize', 0);
5293
+ var _sqlite3_shutdown = Module['_sqlite3_shutdown'] = createExportWrapper('sqlite3_shutdown', 0);
5294
+ var _sqlite3_config = Module['_sqlite3_config'] = createExportWrapper('sqlite3_config', 2);
5295
+ var _sqlite3_db_mutex = Module['_sqlite3_db_mutex'] = createExportWrapper('sqlite3_db_mutex', 1);
5296
+ var _sqlite3_db_release_memory = Module['_sqlite3_db_release_memory'] = createExportWrapper('sqlite3_db_release_memory', 1);
5297
+ var _sqlite3_db_cacheflush = Module['_sqlite3_db_cacheflush'] = createExportWrapper('sqlite3_db_cacheflush', 1);
5298
+ var _sqlite3_db_config = Module['_sqlite3_db_config'] = createExportWrapper('sqlite3_db_config', 3);
5299
+ var _sqlite3_last_insert_rowid = Module['_sqlite3_last_insert_rowid'] = createExportWrapper('sqlite3_last_insert_rowid', 1);
5300
+ var _sqlite3_set_last_insert_rowid = Module['_sqlite3_set_last_insert_rowid'] = createExportWrapper('sqlite3_set_last_insert_rowid', 3);
5301
+ var _sqlite3_changes64 = Module['_sqlite3_changes64'] = createExportWrapper('sqlite3_changes64', 1);
5302
+ var _sqlite3_changes = Module['_sqlite3_changes'] = createExportWrapper('sqlite3_changes', 1);
5303
+ var _sqlite3_total_changes64 = Module['_sqlite3_total_changes64'] = createExportWrapper('sqlite3_total_changes64', 1);
5304
+ var _sqlite3_total_changes = Module['_sqlite3_total_changes'] = createExportWrapper('sqlite3_total_changes', 1);
5305
+ var _sqlite3_txn_state = Module['_sqlite3_txn_state'] = createExportWrapper('sqlite3_txn_state', 2);
5306
+ var _sqlite3_close = Module['_sqlite3_close'] = createExportWrapper('sqlite3_close', 1);
5307
+ var _sqlite3_close_v2 = Module['_sqlite3_close_v2'] = createExportWrapper('sqlite3_close_v2', 1);
5308
+ var _sqlite3_busy_handler = Module['_sqlite3_busy_handler'] = createExportWrapper('sqlite3_busy_handler', 3);
5309
+ var _sqlite3_progress_handler = Module['_sqlite3_progress_handler'] = createExportWrapper('sqlite3_progress_handler', 4);
5310
+ var _sqlite3_busy_timeout = Module['_sqlite3_busy_timeout'] = createExportWrapper('sqlite3_busy_timeout', 2);
5311
+ var _sqlite3_interrupt = Module['_sqlite3_interrupt'] = createExportWrapper('sqlite3_interrupt', 1);
5312
+ var _sqlite3_is_interrupted = Module['_sqlite3_is_interrupted'] = createExportWrapper('sqlite3_is_interrupted', 1);
5313
+ var _sqlite3_create_function = Module['_sqlite3_create_function'] = createExportWrapper('sqlite3_create_function', 8);
5314
+ var _sqlite3_create_function_v2 = Module['_sqlite3_create_function_v2'] = createExportWrapper('sqlite3_create_function_v2', 9);
5315
+ var _sqlite3_create_window_function = Module['_sqlite3_create_window_function'] = createExportWrapper('sqlite3_create_window_function', 10);
5316
+ var _sqlite3_create_function16 = Module['_sqlite3_create_function16'] = createExportWrapper('sqlite3_create_function16', 8);
5317
+ var _sqlite3_overload_function = Module['_sqlite3_overload_function'] = createExportWrapper('sqlite3_overload_function', 3);
5318
+ var _sqlite3_trace_v2 = Module['_sqlite3_trace_v2'] = createExportWrapper('sqlite3_trace_v2', 4);
5319
+ var _sqlite3_commit_hook = Module['_sqlite3_commit_hook'] = createExportWrapper('sqlite3_commit_hook', 3);
5320
+ var _sqlite3_update_hook = Module['_sqlite3_update_hook'] = createExportWrapper('sqlite3_update_hook', 3);
5321
+ var _sqlite3_rollback_hook = Module['_sqlite3_rollback_hook'] = createExportWrapper('sqlite3_rollback_hook', 3);
5322
+ var _sqlite3_autovacuum_pages = Module['_sqlite3_autovacuum_pages'] = createExportWrapper('sqlite3_autovacuum_pages', 4);
5323
+ var _sqlite3_wal_autocheckpoint = Module['_sqlite3_wal_autocheckpoint'] = createExportWrapper('sqlite3_wal_autocheckpoint', 2);
5324
+ var _sqlite3_wal_hook = Module['_sqlite3_wal_hook'] = createExportWrapper('sqlite3_wal_hook', 3);
5325
+ var _sqlite3_wal_checkpoint_v2 = Module['_sqlite3_wal_checkpoint_v2'] = createExportWrapper('sqlite3_wal_checkpoint_v2', 5);
5326
+ var _sqlite3_wal_checkpoint = Module['_sqlite3_wal_checkpoint'] = createExportWrapper('sqlite3_wal_checkpoint', 2);
5327
+ var _sqlite3_error_offset = Module['_sqlite3_error_offset'] = createExportWrapper('sqlite3_error_offset', 1);
5328
+ var _sqlite3_errmsg16 = Module['_sqlite3_errmsg16'] = createExportWrapper('sqlite3_errmsg16', 1);
5329
+ var _sqlite3_errcode = Module['_sqlite3_errcode'] = createExportWrapper('sqlite3_errcode', 1);
5330
+ var _sqlite3_extended_errcode = Module['_sqlite3_extended_errcode'] = createExportWrapper('sqlite3_extended_errcode', 1);
5331
+ var _sqlite3_system_errno = Module['_sqlite3_system_errno'] = createExportWrapper('sqlite3_system_errno', 1);
5332
+ var _sqlite3_errstr = Module['_sqlite3_errstr'] = createExportWrapper('sqlite3_errstr', 1);
5333
+ var _sqlite3_limit = Module['_sqlite3_limit'] = createExportWrapper('sqlite3_limit', 3);
5334
+ var _sqlite3_open = Module['_sqlite3_open'] = createExportWrapper('sqlite3_open', 2);
5335
+ var _sqlite3_open_v2 = Module['_sqlite3_open_v2'] = createExportWrapper('sqlite3_open_v2', 4);
5336
+ var _sqlite3_open16 = Module['_sqlite3_open16'] = createExportWrapper('sqlite3_open16', 2);
5337
+ var _sqlite3_create_collation = Module['_sqlite3_create_collation'] = createExportWrapper('sqlite3_create_collation', 5);
5338
+ var _sqlite3_create_collation_v2 = Module['_sqlite3_create_collation_v2'] = createExportWrapper('sqlite3_create_collation_v2', 6);
5339
+ var _sqlite3_create_collation16 = Module['_sqlite3_create_collation16'] = createExportWrapper('sqlite3_create_collation16', 5);
5340
+ var _sqlite3_collation_needed = Module['_sqlite3_collation_needed'] = createExportWrapper('sqlite3_collation_needed', 3);
5341
+ var _sqlite3_collation_needed16 = Module['_sqlite3_collation_needed16'] = createExportWrapper('sqlite3_collation_needed16', 3);
5342
+ var _sqlite3_get_clientdata = Module['_sqlite3_get_clientdata'] = createExportWrapper('sqlite3_get_clientdata', 2);
5343
+ var _sqlite3_set_clientdata = Module['_sqlite3_set_clientdata'] = createExportWrapper('sqlite3_set_clientdata', 4);
5344
+ var _sqlite3_get_autocommit = Module['_sqlite3_get_autocommit'] = createExportWrapper('sqlite3_get_autocommit', 1);
5345
+ var _sqlite3_table_column_metadata = Module['_sqlite3_table_column_metadata'] = createExportWrapper('sqlite3_table_column_metadata', 9);
5346
+ var _sqlite3_sleep = Module['_sqlite3_sleep'] = createExportWrapper('sqlite3_sleep', 1);
5347
+ var _sqlite3_extended_result_codes = Module['_sqlite3_extended_result_codes'] = createExportWrapper('sqlite3_extended_result_codes', 2);
5348
+ var _sqlite3_file_control = Module['_sqlite3_file_control'] = createExportWrapper('sqlite3_file_control', 4);
5349
+ var _sqlite3_test_control = Module['_sqlite3_test_control'] = createExportWrapper('sqlite3_test_control', 2);
5350
+ var _sqlite3_create_filename = Module['_sqlite3_create_filename'] = createExportWrapper('sqlite3_create_filename', 5);
5351
+ var _sqlite3_free_filename = Module['_sqlite3_free_filename'] = createExportWrapper('sqlite3_free_filename', 1);
5352
+ var _sqlite3_uri_parameter = Module['_sqlite3_uri_parameter'] = createExportWrapper('sqlite3_uri_parameter', 2);
5353
+ var _sqlite3_uri_key = Module['_sqlite3_uri_key'] = createExportWrapper('sqlite3_uri_key', 2);
5354
+ var _sqlite3_uri_boolean = Module['_sqlite3_uri_boolean'] = createExportWrapper('sqlite3_uri_boolean', 3);
5355
+ var _sqlite3_uri_int64 = Module['_sqlite3_uri_int64'] = createExportWrapper('sqlite3_uri_int64', 4);
5356
+ var _sqlite3_filename_database = Module['_sqlite3_filename_database'] = createExportWrapper('sqlite3_filename_database', 1);
5357
+ var _sqlite3_filename_journal = Module['_sqlite3_filename_journal'] = createExportWrapper('sqlite3_filename_journal', 1);
5358
+ var _sqlite3_filename_wal = Module['_sqlite3_filename_wal'] = createExportWrapper('sqlite3_filename_wal', 1);
5359
+ var _sqlite3_db_name = Module['_sqlite3_db_name'] = createExportWrapper('sqlite3_db_name', 2);
5360
+ var _sqlite3_db_filename = Module['_sqlite3_db_filename'] = createExportWrapper('sqlite3_db_filename', 2);
5361
+ var _sqlite3_db_readonly = Module['_sqlite3_db_readonly'] = createExportWrapper('sqlite3_db_readonly', 2);
5362
+ var _sqlite3_compileoption_used = Module['_sqlite3_compileoption_used'] = createExportWrapper('sqlite3_compileoption_used', 1);
5363
+ var _sqlite3_compileoption_get = Module['_sqlite3_compileoption_get'] = createExportWrapper('sqlite3_compileoption_get', 1);
5364
+ var _sqlite3session_create = Module['_sqlite3session_create'] = createExportWrapper('sqlite3session_create', 3);
5365
+ var _sqlite3session_delete = Module['_sqlite3session_delete'] = createExportWrapper('sqlite3session_delete', 1);
5366
+ var _sqlite3session_attach = Module['_sqlite3session_attach'] = createExportWrapper('sqlite3session_attach', 2);
5367
+ var _sqlite3session_changeset = Module['_sqlite3session_changeset'] = createExportWrapper('sqlite3session_changeset', 3);
5368
+ var _sqlite3session_enable = Module['_sqlite3session_enable'] = createExportWrapper('sqlite3session_enable', 2);
5369
+ var _sqlite3changeset_start = Module['_sqlite3changeset_start'] = createExportWrapper('sqlite3changeset_start', 3);
5370
+ var _sqlite3changeset_finalize = Module['_sqlite3changeset_finalize'] = createExportWrapper('sqlite3changeset_finalize', 1);
5371
+ var _sqlite3changeset_invert = Module['_sqlite3changeset_invert'] = createExportWrapper('sqlite3changeset_invert', 4);
5372
+ var _sqlite3changeset_apply = Module['_sqlite3changeset_apply'] = createExportWrapper('sqlite3changeset_apply', 6);
5373
+ var _sqlite3_sourceid = Module['_sqlite3_sourceid'] = createExportWrapper('sqlite3_sourceid', 0);
5374
+ var _strerror = createExportWrapper('strerror', 1);
5375
+ var _malloc = Module['_malloc'] = createExportWrapper('malloc', 1);
5376
+ var _free = Module['_free'] = createExportWrapper('free', 1);
5377
+ var _RegisterExtensionFunctions = Module['_RegisterExtensionFunctions'] = createExportWrapper('RegisterExtensionFunctions', 1);
5378
+ var _getSqliteFree = Module['_getSqliteFree'] = createExportWrapper('getSqliteFree', 0);
5379
+ var _main = Module['_main'] = createExportWrapper('main', 2);
5380
+ var _libauthorizer_set_authorizer = Module['_libauthorizer_set_authorizer'] = createExportWrapper('libauthorizer_set_authorizer', 3);
5381
+ var _libfunction_create_function = Module['_libfunction_create_function'] = createExportWrapper('libfunction_create_function', 8);
5382
+ var _libhook_commit_hook = Module['_libhook_commit_hook'] = createExportWrapper('libhook_commit_hook', 3);
5383
+ var _libhook_update_hook = Module['_libhook_update_hook'] = createExportWrapper('libhook_update_hook', 3);
5384
+ var _libprogress_progress_handler = Module['_libprogress_progress_handler'] = createExportWrapper('libprogress_progress_handler', 4);
5385
+ var _libvfs_vfs_register = Module['_libvfs_vfs_register'] = createExportWrapper('libvfs_vfs_register', 6);
5386
+ var _fflush = createExportWrapper('fflush', 1);
5387
+ var _emscripten_builtin_memalign = createExportWrapper('emscripten_builtin_memalign', 2);
5388
+ var __emscripten_tempret_set = createExportWrapper('_emscripten_tempret_set', 1);
5389
+ var __emscripten_tempret_get = createExportWrapper('_emscripten_tempret_get', 0);
5615
5390
  var _emscripten_stack_init = () => (_emscripten_stack_init = wasmExports['emscripten_stack_init'])();
5616
5391
  var _emscripten_stack_get_free = () => (_emscripten_stack_get_free = wasmExports['emscripten_stack_get_free'])();
5617
5392
  var _emscripten_stack_get_base = () => (_emscripten_stack_get_base = wasmExports['emscripten_stack_get_base'])();
5618
5393
  var _emscripten_stack_get_end = () => (_emscripten_stack_get_end = wasmExports['emscripten_stack_get_end'])();
5619
- var stackSave = createExportWrapper('stackSave');
5620
- var stackRestore = createExportWrapper('stackRestore');
5621
- var stackAlloc = createExportWrapper('stackAlloc');
5394
+ var __emscripten_stack_restore = (a0) => (__emscripten_stack_restore = wasmExports['_emscripten_stack_restore'])(a0);
5395
+ var __emscripten_stack_alloc = (a0) => (__emscripten_stack_alloc = wasmExports['_emscripten_stack_alloc'])(a0);
5622
5396
  var _emscripten_stack_get_current = () => (_emscripten_stack_get_current = wasmExports['emscripten_stack_get_current'])();
5623
- var dynCall_jiji = Module['dynCall_jiji'] = createExportWrapper('dynCall_jiji');
5624
- var dynCall_viiiiijj = Module['dynCall_viiiiijj'] = createExportWrapper('dynCall_viiiiijj');
5625
- var dynCall_viji = Module['dynCall_viji'] = createExportWrapper('dynCall_viji');
5626
- var dynCall_viiiij = Module['dynCall_viiiij'] = createExportWrapper('dynCall_viiiij');
5627
- var dynCall_iij = Module['dynCall_iij'] = createExportWrapper('dynCall_iij');
5628
- var dynCall_iiiij = Module['dynCall_iiiij'] = createExportWrapper('dynCall_iiiij');
5629
- var dynCall_iijii = Module['dynCall_iijii'] = createExportWrapper('dynCall_iijii');
5630
- var dynCall_iiji = Module['dynCall_iiji'] = createExportWrapper('dynCall_iiji');
5631
- var dynCall_iiiiiij = Module['dynCall_iiiiiij'] = createExportWrapper('dynCall_iiiiiij');
5632
- var _sqlite3_version = Module['_sqlite3_version'] = 108472;
5397
+ var dynCall_jiji = Module['dynCall_jiji'] = createExportWrapper('dynCall_jiji', 5);
5398
+ var dynCall_viiiiijj = Module['dynCall_viiiiijj'] = createExportWrapper('dynCall_viiiiijj', 10);
5399
+ var dynCall_viji = Module['dynCall_viji'] = createExportWrapper('dynCall_viji', 5);
5400
+ var dynCall_viiiij = Module['dynCall_viiiij'] = createExportWrapper('dynCall_viiiij', 7);
5401
+ var dynCall_iij = Module['dynCall_iij'] = createExportWrapper('dynCall_iij', 4);
5402
+ var dynCall_iiiij = Module['dynCall_iiiij'] = createExportWrapper('dynCall_iiiij', 6);
5403
+ var dynCall_iijii = Module['dynCall_iijii'] = createExportWrapper('dynCall_iijii', 6);
5404
+ var dynCall_iiji = Module['dynCall_iiji'] = createExportWrapper('dynCall_iiji', 5);
5405
+ var dynCall_iiiiiij = Module['dynCall_iiiiiij'] = createExportWrapper('dynCall_iiiiiij', 8);
5406
+ var _sqlite3_version = Module['_sqlite3_version'] = 108616;
5633
5407
 
5634
5408
  // include: postamble.js
5635
5409
  // === Auto-generated postamble setup entry stuff ===
@@ -5660,22 +5434,17 @@ var missingLibrarySymbols = [
5660
5434
  'readI53FromU64',
5661
5435
  'convertI32PairToI53',
5662
5436
  'convertU32PairToI53',
5437
+ 'setTempRet0',
5663
5438
  'growMemory',
5664
- 'arraySum',
5665
- 'addDays',
5666
5439
  'inetPton4',
5667
5440
  'inetNtop4',
5668
5441
  'inetPton6',
5669
5442
  'inetNtop6',
5670
5443
  'readSockaddr',
5671
5444
  'writeSockaddr',
5672
- 'getHostByName',
5673
- 'getCallstack',
5674
5445
  'emscriptenLog',
5675
- 'convertPCtoSourceLocation',
5676
5446
  'readEmAsmArgs',
5677
5447
  'jstoi_q',
5678
- 'jstoi_s',
5679
5448
  'listenOnce',
5680
5449
  'autoResumeAudioContext',
5681
5450
  'dynCallLegacy',
@@ -5686,7 +5455,6 @@ var missingLibrarySymbols = [
5686
5455
  'callUserCallback',
5687
5456
  'maybeExit',
5688
5457
  'asmjsMangle',
5689
- 'handleAllocatorInit',
5690
5458
  'HandleAllocator',
5691
5459
  'getNativeTypeSize',
5692
5460
  'STACK_SIZE',
@@ -5701,10 +5469,10 @@ var missingLibrarySymbols = [
5701
5469
  'formatString',
5702
5470
  'lengthBytesUTF16',
5703
5471
  'lengthBytesUTF32',
5472
+ 'stringToNewUTF8',
5704
5473
  'registerKeyEventCallback',
5705
5474
  'maybeCStringToJsString',
5706
5475
  'findEventTarget',
5707
- 'findCanvasEventTarget',
5708
5476
  'getBoundingClientRect',
5709
5477
  'fillMouseEventData',
5710
5478
  'registerMouseEventCallback',
@@ -5737,7 +5505,6 @@ var missingLibrarySymbols = [
5737
5505
  'registerTouchEventCallback',
5738
5506
  'fillGamepadEventData',
5739
5507
  'registerGamepadEventCallback',
5740
- 'disableGamepadApiIfItThrows',
5741
5508
  'registerBeforeUnloadEventCallback',
5742
5509
  'fillBatteryEventData',
5743
5510
  'battery',
@@ -5745,15 +5512,18 @@ var missingLibrarySymbols = [
5745
5512
  'setCanvasElementSize',
5746
5513
  'getCanvasElementSize',
5747
5514
  'jsStackTrace',
5748
- 'stackTrace',
5515
+ 'getCallstack',
5516
+ 'convertPCtoSourceLocation',
5749
5517
  'checkWasiClock',
5750
5518
  'wasiRightsToMuslOFlags',
5751
5519
  'wasiOFlagsToMuslOFlags',
5752
- 'createDyncallWrapper',
5753
5520
  'safeSetTimeout',
5754
5521
  'setImmediateWrapped',
5522
+ 'safeRequestAnimationFrame',
5755
5523
  'clearImmediateWrapped',
5756
5524
  'polyfillSetImmediate',
5525
+ 'registerPostMainLoop',
5526
+ 'registerPreMainLoop',
5757
5527
  'getPromise',
5758
5528
  'makePromise',
5759
5529
  'idsToPromises',
@@ -5761,23 +5531,26 @@ var missingLibrarySymbols = [
5761
5531
  'ExceptionInfo',
5762
5532
  'findMatchingCatch',
5763
5533
  'Browser_asyncPrepareDataCounter',
5764
- 'setMainLoop',
5534
+ 'arraySum',
5535
+ 'addDays',
5765
5536
  'getSocketFromFD',
5766
5537
  'getSocketAddress',
5767
5538
  'FS_unlink',
5768
5539
  'FS_mkdirTree',
5769
5540
  '_setNetworkCallback',
5770
5541
  'heapObjectForWebGLType',
5771
- 'heapAccessShiftForWebGLHeap',
5542
+ 'toTypedArrayIndex',
5772
5543
  'webgl_enable_ANGLE_instanced_arrays',
5773
5544
  'webgl_enable_OES_vertex_array_object',
5774
5545
  'webgl_enable_WEBGL_draw_buffers',
5775
5546
  'webgl_enable_WEBGL_multi_draw',
5547
+ 'webgl_enable_EXT_polygon_offset_clamp',
5548
+ 'webgl_enable_EXT_clip_control',
5549
+ 'webgl_enable_WEBGL_polygon_mode',
5776
5550
  'emscriptenWebGLGet',
5777
5551
  'computeUnpackAlignedImageSize',
5778
5552
  'colorChannelsInGlTextureFormat',
5779
5553
  'emscriptenWebGLGetTexPixelData',
5780
- '__glGenObject',
5781
5554
  'emscriptenWebGLGetUniform',
5782
5555
  'webglGetUniformLocation',
5783
5556
  'webglPrepareUniformLocationsBeforeFirstUse',
@@ -5787,14 +5560,14 @@ var missingLibrarySymbols = [
5787
5560
  'writeGLArray',
5788
5561
  'registerWebGlEventCallback',
5789
5562
  'runAndAbortIfError',
5790
- 'SDL_unicode',
5791
- 'SDL_ttfContext',
5792
- 'SDL_audio',
5793
5563
  'ALLOC_NORMAL',
5794
5564
  'ALLOC_STACK',
5795
5565
  'allocate',
5796
5566
  'writeStringToMemory',
5797
5567
  'writeAsciiToMemory',
5568
+ 'setErrNo',
5569
+ 'demangle',
5570
+ 'stackTrace',
5798
5571
  ];
5799
5572
  missingLibrarySymbols.forEach(missingLibrarySymbol)
5800
5573
 
@@ -5807,50 +5580,34 @@ var unexportedSymbols = [
5807
5580
  'addOnPostRun',
5808
5581
  'addRunDependency',
5809
5582
  'removeRunDependency',
5810
- 'FS_createFolder',
5811
- 'FS_createPath',
5812
- 'FS_createLazyFile',
5813
- 'FS_createLink',
5814
- 'FS_createDevice',
5815
- 'FS_readFile',
5816
5583
  'out',
5817
5584
  'err',
5818
5585
  'callMain',
5819
5586
  'abort',
5820
5587
  'wasmMemory',
5821
5588
  'wasmExports',
5822
- 'stackAlloc',
5823
- 'stackSave',
5824
- 'stackRestore',
5825
- 'setTempRet0',
5826
5589
  'writeStackCookie',
5827
5590
  'checkStackCookie',
5828
5591
  'readI53FromI64',
5829
5592
  'convertI32PairToI53Checked',
5593
+ 'stackSave',
5594
+ 'stackRestore',
5595
+ 'stackAlloc',
5830
5596
  'ptrToString',
5831
5597
  'zeroMemory',
5832
5598
  'exitJS',
5833
5599
  'getHeapMax',
5834
5600
  'abortOnCannotGrowMemory',
5835
5601
  'ENV',
5836
- 'MONTH_DAYS_REGULAR',
5837
- 'MONTH_DAYS_LEAP',
5838
- 'MONTH_DAYS_REGULAR_CUMULATIVE',
5839
- 'MONTH_DAYS_LEAP_CUMULATIVE',
5840
- 'isLeapYear',
5841
- 'ydayFromDate',
5842
5602
  'ERRNO_CODES',
5843
- 'ERRNO_MESSAGES',
5844
- 'setErrNo',
5603
+ 'strError',
5845
5604
  'DNS',
5846
5605
  'Protocols',
5847
5606
  'Sockets',
5848
- 'initRandomFill',
5849
- 'randomFill',
5850
5607
  'timers',
5851
5608
  'warnOnce',
5852
- 'UNWIND_CACHE',
5853
5609
  'readEmAsmArgsArray',
5610
+ 'jstoi_s',
5854
5611
  'getExecutableName',
5855
5612
  'handleException',
5856
5613
  'keepRuntimeAlive',
@@ -5876,24 +5633,32 @@ var unexportedSymbols = [
5876
5633
  'stringToUTF8Array',
5877
5634
  'stringToAscii',
5878
5635
  'UTF16Decoder',
5879
- 'stringToNewUTF8',
5880
5636
  'stringToUTF8OnStack',
5881
5637
  'JSEvents',
5882
5638
  'specialHTMLTargets',
5639
+ 'findCanvasEventTarget',
5883
5640
  'currentFullscreenStrategy',
5884
5641
  'restoreOldWindowedStyle',
5885
- 'demangle',
5886
- 'demangleAll',
5642
+ 'UNWIND_CACHE',
5887
5643
  'ExitStatus',
5888
5644
  'getEnvStrings',
5889
5645
  'doReadv',
5890
5646
  'doWritev',
5647
+ 'initRandomFill',
5648
+ 'randomFill',
5891
5649
  'promiseMap',
5892
5650
  'uncaughtExceptionCount',
5893
5651
  'exceptionLast',
5894
5652
  'exceptionCaught',
5895
5653
  'Browser',
5654
+ 'getPreloadedImageData__data',
5896
5655
  'wget',
5656
+ 'MONTH_DAYS_REGULAR',
5657
+ 'MONTH_DAYS_LEAP',
5658
+ 'MONTH_DAYS_REGULAR_CUMULATIVE',
5659
+ 'MONTH_DAYS_LEAP_CUMULATIVE',
5660
+ 'isLeapYear',
5661
+ 'ydayFromDate',
5897
5662
  'SYSCALLS',
5898
5663
  'preloadPlugins',
5899
5664
  'FS_createPreloadedFile',
@@ -5901,8 +5666,12 @@ var unexportedSymbols = [
5901
5666
  'FS_getMode',
5902
5667
  'FS_stdin_getChar_buffer',
5903
5668
  'FS_stdin_getChar',
5669
+ 'FS_createPath',
5670
+ 'FS_createDevice',
5671
+ 'FS_readFile',
5904
5672
  'FS',
5905
5673
  'FS_createDataFile',
5674
+ 'FS_createLazyFile',
5906
5675
  'MEMFS',
5907
5676
  'TTY',
5908
5677
  'PIPEFS',
@@ -5911,7 +5680,6 @@ var unexportedSymbols = [
5911
5680
  'miniTempWebGLFloatBuffers',
5912
5681
  'miniTempWebGLIntBuffers',
5913
5682
  'GL',
5914
- 'emscripten_webgl_power_preferences',
5915
5683
  'AL',
5916
5684
  'GLUT',
5917
5685
  'EGL',
@@ -5921,6 +5689,8 @@ var unexportedSymbols = [
5921
5689
  'SDL_gfx',
5922
5690
  'allocateUTF8',
5923
5691
  'allocateUTF8OnStack',
5692
+ 'print',
5693
+ 'printErr',
5924
5694
  'adapters_support',
5925
5695
  ];
5926
5696
  unexportedSymbols.forEach(unexportedRuntimeSymbol);
@@ -5972,7 +5742,7 @@ function run() {
5972
5742
  return;
5973
5743
  }
5974
5744
 
5975
- stackCheckInit();
5745
+ stackCheckInit();
5976
5746
 
5977
5747
  preRun();
5978
5748
 
@@ -5995,7 +5765,7 @@ function run() {
5995
5765
  preMain();
5996
5766
 
5997
5767
  readyPromiseResolve(Module);
5998
- if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();
5768
+ Module['onRuntimeInitialized']?.();
5999
5769
 
6000
5770
  if (shouldRunNow) callMain();
6001
5771
 
@@ -6004,10 +5774,8 @@ function run() {
6004
5774
 
6005
5775
  if (Module['setStatus']) {
6006
5776
  Module['setStatus']('Running...');
6007
- setTimeout(function() {
6008
- setTimeout(function() {
6009
- Module['setStatus']('');
6010
- }, 1);
5777
+ setTimeout(() => {
5778
+ setTimeout(() => Module['setStatus'](''), 1);
6011
5779
  doRun();
6012
5780
  }, 1);
6013
5781
  } else
@@ -6038,7 +5806,7 @@ function checkUnflushedContent() {
6038
5806
  try { // it doesn't matter if it fails
6039
5807
  _fflush(0);
6040
5808
  // also flush in the JS FS layer
6041
- ['stdout', 'stderr'].forEach(function(name) {
5809
+ ['stdout', 'stderr'].forEach((name) => {
6042
5810
  var info = FS.analyzePath('/dev/' + name);
6043
5811
  if (!info) return;
6044
5812
  var stream = info.object;
@@ -6070,9 +5838,9 @@ if (Module['noInitialRun']) shouldRunNow = false;
6070
5838
 
6071
5839
  run();
6072
5840
 
6073
-
6074
5841
  // end include: postamble.js
6075
- // include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libauthorizer.js
5842
+
5843
+ // include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libauthorizer.js
6076
5844
  // Copyright 2024 Roy T. Hashimoto. All Rights Reserved.
6077
5845
  // This file should be included in the build with --post-js.
6078
5846
 
@@ -6102,9 +5870,9 @@ run();
6102
5870
  }
6103
5871
  return result;
6104
5872
  };
6105
- })();
6106
- // end include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libauthorizer.js
6107
- // include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libfunction.js
5873
+ })();// end include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libauthorizer.js
5874
+
5875
+ // include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libfunction.js
6108
5876
  // Copyright 2024 Roy T. Hashimoto. All Rights Reserved.
6109
5877
  // This file should be included in the build with --post-js.
6110
5878
 
@@ -6159,9 +5927,9 @@ run();
6159
5927
  }
6160
5928
  return result;
6161
5929
  };
6162
- })();
6163
- // end include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libfunction.js
6164
- // include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libhook.js
5930
+ })();// end include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libfunction.js
5931
+
5932
+ // include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libhook.js
6165
5933
  // Copyright 2024 Roy T. Hashimoto. All Rights Reserved.
6166
5934
  // This file should be included in the build with --post-js.
6167
5935
 
@@ -6191,8 +5959,36 @@ run();
6191
5959
  }
6192
5960
  };
6193
5961
  })();
6194
- // end include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libhook.js
6195
- // include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libprogress.js
5962
+
5963
+ (function() {
5964
+ const AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
5965
+ let pAsyncFlags = 0;
5966
+
5967
+ Module['commit_hook'] = function(db, xCommitHook) {
5968
+ if (pAsyncFlags) {
5969
+ Module['deleteCallback'](pAsyncFlags);
5970
+ Module['_sqlite3_free'](pAsyncFlags);
5971
+ pAsyncFlags = 0;
5972
+ }
5973
+
5974
+ pAsyncFlags = Module['_sqlite3_malloc'](4);
5975
+ setValue(pAsyncFlags, xCommitHook instanceof AsyncFunction ? 1 : 0, 'i32');
5976
+
5977
+ ccall(
5978
+ 'libhook_commit_hook',
5979
+ 'void',
5980
+ ['number', 'number', 'number'],
5981
+ [db, xCommitHook ? 1 : 0, pAsyncFlags]);
5982
+ if (xCommitHook) {
5983
+ Module['setCallback'](pAsyncFlags, (_) => {
5984
+ return xCommitHook();
5985
+ });
5986
+ }
5987
+ };
5988
+ })();
5989
+ // end include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libhook.js
5990
+
5991
+ // include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libprogress.js
6196
5992
  // Copyright 2024 Roy T. Hashimoto. All Rights Reserved.
6197
5993
  // This file should be included in the build with --post-js.
6198
5994
 
@@ -6219,9 +6015,9 @@ run();
6219
6015
  Module['setCallback'](pAsyncFlags, _ => xProgress(pApp));
6220
6016
  }
6221
6017
  };
6222
- })();
6223
- // end include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libprogress.js
6224
- // include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libvfs.js
6018
+ })();// end include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libprogress.js
6019
+
6020
+ // include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libvfs.js
6225
6021
  // Copyright 2024 Roy T. Hashimoto. All Rights Reserved.
6226
6022
  // This file should be included in the build with --post-js.
6227
6023
 
@@ -6300,13 +6096,38 @@ run();
6300
6096
  Module['_sqlite3_free'](vfsReturn);
6301
6097
  }
6302
6098
  };
6303
- })();
6304
- // end include: /private/tmp/nix-build-wa-sqlite-livestore-3.46.0.drv-0/wa-sqlite-livestore/src/libvfs.js
6099
+ })();// end include: /private/tmp/nix-build-wa-sqlite-livestore-3.47.0.drv-0/wa-sqlite-livestore/src/libvfs.js
6100
+
6101
+ // include: postamble_modularize.js
6102
+ // In MODULARIZE mode we wrap the generated code in a factory function
6103
+ // and return either the Module itself, or a promise of the module.
6104
+ //
6105
+ // We assign to the `moduleRtn` global here and configure closure to see
6106
+ // this as and extern so it won't get minified.
6107
+
6108
+ moduleRtn = readyPromise;
6109
+
6110
+ // Assertion for attempting to access module properties on the incoming
6111
+ // moduleArg. In the past we used this object as the prototype of the module
6112
+ // and assigned properties to it, but now we return a distinct object. This
6113
+ // keeps the instance private until it is ready (i.e the promise has been
6114
+ // resolved).
6115
+ for (const prop of Object.keys(Module)) {
6116
+ if (!(prop in moduleArg)) {
6117
+ Object.defineProperty(moduleArg, prop, {
6118
+ configurable: true,
6119
+ get() {
6120
+ abort(`Access to module property ('${prop}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)
6121
+ }
6122
+ });
6123
+ }
6124
+ }
6125
+ // end include: postamble_modularize.js
6126
+
6305
6127
 
6306
6128
 
6307
- return moduleArg.ready
6129
+ return moduleRtn;
6308
6130
  }
6309
6131
  );
6310
6132
  })();
6311
- ;
6312
- export default Module;
6133
+ export default Module;