diff --git a/src/lib/libasync.js b/src/lib/libasync.js index 4c54f73208f2c..74bf06c588ce8 100644 --- a/src/lib/libasync.js +++ b/src/lib/libasync.js @@ -525,7 +525,7 @@ addToLibrary({ var fiber = Fibers.nextFiber; Fibers.nextFiber = 0; #if ASYNCIFY_DEBUG >= 2 - dbg("ASYNCIFY/FIBER: trampoline jump into fiber", fiber, new Error().stack); + dbg('ASYNCIFY/FIBER: trampoline jump into fiber', fiber, new Error().stack); #endif Fibers.finishContextSwitch(fiber); } while (Fibers.nextFiber); @@ -574,7 +574,7 @@ addToLibrary({ }, }, - emscripten_fiber_swap__deps: ["$Asyncify", "$Fibers", '$stackSave'], + emscripten_fiber_swap__deps: ['$Asyncify', '$Fibers', '$stackSave'], emscripten_fiber_swap__async: true, emscripten_fiber_swap: (oldFiber, newFiber) => { if (ABORT) return; diff --git a/src/lib/libbootstrap.js b/src/lib/libbootstrap.js index 84f8ef467ac77..b1d381bf1d00e 100644 --- a/src/lib/libbootstrap.js +++ b/src/lib/libbootstrap.js @@ -8,7 +8,7 @@ // it itself depends on the struct info information. #if !BOOTSTRAPPING_STRUCT_INFO -assert(false, "libbootstrap.js only designed for use with BOOTSTRAPPING_STRUCT_INFO") +assert(false, 'libbootstrap.js only designed for use with BOOTSTRAPPING_STRUCT_INFO') #endif assert(Object.keys(LibraryManager.library).length === 0); diff --git a/src/lib/libbrowser.js b/src/lib/libbrowser.js index 6996a770c9622..50fbaf8ced1fc 100644 --- a/src/lib/libbrowser.js +++ b/src/lib/libbrowser.js @@ -153,7 +153,7 @@ var LibraryBrowser = { #if expectToReceiveOnModule('elementPointerLock') if (Module['elementPointerLock']) { - canvas.addEventListener("click", (ev) => { + canvas.addEventListener('click', (ev) => { if (!Browser.pointerLock && Browser.getCanvas().requestPointerLock) { Browser.getCanvas().requestPointerLock(); ev.preventDefault(); @@ -265,7 +265,7 @@ var LibraryBrowser = { } // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root - var canvasContainer = document.createElement("div"); + var canvasContainer = document.createElement('div'); canvas.parentNode.insertBefore(canvasContainer, canvas); canvasContainer.appendChild(canvas); @@ -287,7 +287,7 @@ var LibraryBrowser = { exitFullscreen() { // This is workaround for chrome. Trying to exit from fullscreen - // not in fullscreen state will cause "TypeError: Document not active" + // not in fullscreen state will cause 'TypeError: Document not active' // in chrome. See https://github.com/emscripten-core/emscripten/pull/8236 if (!Browser.isFullscreen) { return false; @@ -425,7 +425,7 @@ var LibraryBrowser = { Browser.mouseY = y; }, - // Unpack a "mouse" event, handling SDL touch paths and pointerlock compatibility stuff. + // Unpack a 'mouse' event, handling SDL touch paths and pointerlock compatibility stuff. calculateMouseEvent(event) { // event should be mousemove, mousedown or mouseup if (Browser.pointerLock) { // When the pointer is locked, calculate the coordinates @@ -446,7 +446,7 @@ var LibraryBrowser = { if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { var touch = event.touch; if (touch === undefined) { - return; // the "touch" property is only defined in SDL + return; // the 'touch' property is only defined in SDL } var coords = Browser.calculateMouseCoords(touch.pageX, touch.pageY); @@ -484,7 +484,7 @@ var LibraryBrowser = { windowedHeight: 0, setFullscreenCanvasSize() { // check if SDL is available - if (typeof SDL != "undefined") { + if (typeof SDL != 'undefined') { var flags = {{{ makeGetValue('SDL.screen', '0', 'u32') }}}; flags = flags | 0x00800000; // set SDL_FULLSCREEN flag {{{ makeSetValue('SDL.screen', '0', 'flags', 'i32') }}}; @@ -495,7 +495,7 @@ var LibraryBrowser = { setWindowedCanvasSize() { // check if SDL is available - if (typeof SDL != "undefined") { + if (typeof SDL != 'undefined') { var flags = {{{ makeGetValue('SDL.screen', '0', 'u32') }}}; flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag {{{ makeSetValue('SDL.screen', '0', 'flags', 'i32') }}}; @@ -532,19 +532,19 @@ var LibraryBrowser = { if (canvas.width != w) canvas.width = w; if (canvas.height != h) canvas.height = h; if (typeof canvas.style != 'undefined') { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); + canvas.style.removeProperty( 'width'); + canvas.style.removeProperty('height'); } } else { if (canvas.width != wNative) canvas.width = wNative; if (canvas.height != hNative) canvas.height = hNative; if (typeof canvas.style != 'undefined') { if (w != wNative || h != hNative) { - canvas.style.setProperty( "width", w + "px", "important"); - canvas.style.setProperty("height", h + "px", "important"); + canvas.style.setProperty( 'width', w + 'px', 'important'); + canvas.style.setProperty('height', h + 'px', 'important'); } else { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); + canvas.style.removeProperty( 'width'); + canvas.style.removeProperty('height'); } } } @@ -851,7 +851,7 @@ var LibraryBrowser = { var canvas = /** @type {HTMLCanvasElement} */(Browser.preloadedImages[path]); if (!canvas) return 0; - var ctx = canvas.getContext("2d"); + var ctx = canvas.getContext('2d'); var image = ctx.getImageData(0, 0, canvas.width, canvas.height); var buf = _malloc(canvas.width * canvas.height * 4); diff --git a/src/lib/libc_preprocessor.js b/src/lib/libc_preprocessor.js index 494fe68adcfd1..06d6ea2a6ffd7 100644 --- a/src/lib/libc_preprocessor.js +++ b/src/lib/libc_preprocessor.js @@ -22,7 +22,7 @@ addToLibrary({ }, // Finds the index of closing parens from the opening parens at arr[i]. - // Used polymorphically for strings ("foo") and token arrays (['(', 'foo', ')']) as input. + // Used polymorphically for strings ('foo') and token arrays (['(', 'foo', ')']) as input. $find_closing_parens_index: (arr, i, opening='(', closing=')') => { for (var nesting = 0; i < arr.length; ++i) { if (arr[i] == opening) ++nesting; @@ -65,7 +65,7 @@ addToLibrary({ function classifyChar(str, idx) { var cc = str.charCodeAt(idx); #if ASSERTIONS - assert(!(cc > 127), "only 7-bit ASCII can be used in preprocessor #if/#ifdef/#define statements"); + assert(!(cc > 127), 'only 7-bit ASCII can be used in preprocessor #if/#ifdef/#define statements'); #endif if (cc > 32) { if (cc < 48) return 1; // an operator symbol, any of !"#$%&'()*+,-./ diff --git a/src/lib/libcore.js b/src/lib/libcore.js index e7269f5803da8..c704375f98085 100644 --- a/src/lib/libcore.js +++ b/src/lib/libcore.js @@ -231,7 +231,7 @@ addToLibrary({ err(`growMemory: Attempted to grow heap from ${oldHeapSize} bytes to ${size} bytes, but got error: ${e}`); #endif } - // implicit 0 return to save code size (caller will cast "undefined" into 0 + // implicit 0 return to save code size (caller will cast 'undefined' into 0 // anyhow) }, @@ -339,7 +339,7 @@ addToLibrary({ #endif #if EMSCRIPTEN_TRACING - traceLogMessage("Emscripten", `Enlarging memory arrays from ${oldSize} to ${newSize}`); + traceLogMessage('Emscripten', `Enlarging memory arrays from ${oldSize} to ${newSize}`); // And now report the new layout _emscripten_trace_report_memory_layout(); #endif @@ -678,25 +678,25 @@ addToLibrary({ if (!valid6regx.test(str)) { return null; } - if (str === "::") { + if (str === '::') { return [0, 0, 0, 0, 0, 0, 0, 0]; } - // Z placeholder to keep track of zeros when splitting the string on ":" - if (str.startsWith("::")) { - str = str.replace("::", "Z:"); // leading zeros case + // Z placeholder to keep track of zeros when splitting the string on ':' + if (str.startsWith('::')) { + str = str.replace('::', 'Z:'); // leading zeros case } else { - str = str.replace("::", ":Z:"); + str = str.replace('::', ':Z:'); } - if (str.indexOf(".") > 0) { + if (str.indexOf('.') > 0) { // parse IPv4 embedded address - str = str.replace(new RegExp('[.]', 'g'), ":"); - words = str.split(":"); + str = str.replace(new RegExp('[.]', 'g'), ':'); + words = str.split(':'); words[words.length-4] = Number(words[words.length-4]) + Number(words[words.length-3])*256; words[words.length-3] = Number(words[words.length-2]) + Number(words[words.length-1])*256; words = words.slice(0, words.length-2); } else { - words = str.split(":"); + words = str.split(':'); } offset = 0; z = 0; @@ -740,7 +740,7 @@ addToLibrary({ // +--------------------------------------+----+---------------------+ // |0000..............................0000|FFFF| IPv4 ADDRESS | (mapped) // +--------------------------------------+----+---------------------+ - var str = ""; + var str = ''; var word = 0; var longest = 0; var lastzero = 0; @@ -761,7 +761,7 @@ addToLibrary({ // Handle IPv4-compatible, IPv4-mapped, loopback and any/unspecified addresses var hasipv4 = true; - var v4part = ""; + var v4part = ''; // check if the 10 high-order bytes are all zeros (first 5 words) for (i = 0; i < 5; i++) { if (parts[i] !== 0) { hasipv4 = false; break; } @@ -772,16 +772,16 @@ addToLibrary({ v4part = inetNtop4(parts[6] | (parts[7] << 16)); // IPv4-mapped IPv6 address if 16-bit value (bytes 11 and 12) == 0xFFFF (6th word) if (parts[5] === -1) { - str = "::ffff:"; + str = '::ffff:'; str += v4part; return str; } // IPv4-compatible IPv6 address if 16-bit value (bytes 11 and 12) == 0x0000 (6th word) if (parts[5] === 0) { - str = "::"; + str = '::'; // special case IPv6 addresses - if (v4part === "0.0.0.0") v4part = ""; // any/unspecified address - if (v4part === "0.0.0.1") v4part = "1";// loopback address + if (v4part === '0.0.0.0') v4part = ''; // any/unspecified address + if (v4part === '0.0.0.1') v4part = '1';// loopback address str += v4part; return str; } @@ -806,18 +806,18 @@ addToLibrary({ for (word = 0; word < 8; word++) { if (longest > 1) { - // compress contiguous zeros - to produce "::" + // compress contiguous zeros - to produce '::' if (parts[word] === 0 && word >= zstart && word < (zstart + longest) ) { if (word === zstart) { - str += ":"; - if (zstart === 0) str += ":"; //leading zeros case + str += ':'; + if (zstart === 0) str += ':'; //leading zeros case } continue; } } // converts 16-bit words from big-endian to little-endian before converting to hex string str += Number(_ntohs(parts[word] & 0xffff)).toString(16); - str += word < 7 ? ":" : ""; + str += word < 7 ? ':' : ''; } return str; }, @@ -1345,7 +1345,7 @@ addToLibrary({ emscripten_run_script_string__noleakcheck: true, emscripten_run_script_string__deps: ['$lengthBytesUTF8', '$stringToUTF8', 'realloc'], emscripten_run_script_string: (ptr) => { - {{{ makeEval("var s = eval(UTF8ToString(ptr));") }}} + {{{ makeEval('var s = eval(UTF8ToString(ptr));') }}} if (s == null) { return 0; } @@ -1387,7 +1387,7 @@ addToLibrary({ `, #else // Modern environment where performance.now() is supported: - // N.B. a shorter form "_emscripten_get_now = performance.now;" is + // N.B. a shorter form '_emscripten_get_now = performance.now;' is // unfortunately not allowed even in current browsers (e.g. FF Nightly 75). emscripten_get_now: () => performance.now(), #endif @@ -1667,9 +1667,9 @@ addToLibrary({ #endif // Parses as much of the given JS string to an integer, with quiet error - // handling (returns a NaN on error). E.g. jstoi_q("123abc") returns 123. - // Note that "smart" radix handling is employed for input string: - // "0314" is parsed as octal, and "0x1234" is parsed as base-16. + // handling (returns a NaN on error). E.g. jstoi_q('123abc') returns 123. + // Note that 'smart' radix handling is employed for input string: + // '0314' is parsed as octal, and '0x1234' is parsed as base-16. $jstoi_q__docs: '/** @suppress {checkTypes} */', $jstoi_q: (str) => parseInt(str), @@ -1720,7 +1720,7 @@ addToLibrary({ return process.argv[1].replace(/\\/g, '/'); } #endif - return "./this.program"; + return './this.program'; }, #else $getExecutableName: () => thisProgram, @@ -1985,7 +1985,7 @@ addToLibrary({ // Certain exception types we do not treat as errors since they are used for // internal control flow. // 1. ExitStatus, which is thrown by exit() - // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // 2. 'unwind', which is thrown by emscripten_unwind_to_js_event_loop() and others // that wish to return to JS event loop. if (e instanceof ExitStatus || e == 'unwind') { #if RUNTIME_DEBUG @@ -2538,14 +2538,14 @@ function wrapSyscallFunction(x, library, isWasi) { } } pre += `dbg('syscall! ${x}: [' + Array.prototype.slice.call(arguments) + ']');\n`; - pre += "var canWarn = true;\n"; - pre += "var ret = (() => {"; - post += "})();\n"; - post += "if (ret && ret < 0 && canWarn) {\n"; - post += " dbg(`error: syscall may have failed with ${-ret} (${strError(-ret)})`);\n"; - post += "}\n"; - post += "dbg(`syscall return: ${ret}`);\n"; - post += "return ret;\n"; + pre += 'var canWarn = true;\n'; + pre += 'var ret = (() => {'; + post += '})();\n'; + post += 'if (ret && ret < 0 && canWarn) {\n'; + post += ' dbg(`error: syscall may have failed with ${-ret} (${strError(-ret)})`);\n'; + post += '}\n'; + post += 'dbg(`syscall return: ${ret}`);\n'; + post += 'return ret;\n'; // Emit dependency to strError() since we added use of it above. library[x + '__deps'].push('$strError'); #endif @@ -2554,21 +2554,21 @@ function wrapSyscallFunction(x, library, isWasi) { if (canThrow) { pre += 'try {\n'; handler += - "} catch (e) {\n" + + '} catch (e) {\n' + " if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;\n"; #if SYSCALL_DEBUG handler += - " dbg(`error: syscall failed with ${e.errno} (${strError(e.errno)})`);\n" + - " canWarn = false;\n"; + ' dbg(`error: syscall failed with ${e.errno} (${strError(e.errno)})`);\n' + + ' canWarn = false;\n'; #endif // Musl syscalls are negated. if (isWasi) { - handler += " return e.errno;\n"; + handler += ' return e.errno;\n'; } else { // Musl syscalls are negated. - handler += " return -e.errno;\n"; + handler += ' return -e.errno;\n'; } - handler += "}\n"; + handler += '}\n'; } post = handler + post; diff --git a/src/lib/libdylink.js b/src/lib/libdylink.js index 2e829e84383aa..83db08cd217a9 100644 --- a/src/lib/libdylink.js +++ b/src/lib/libdylink.js @@ -54,7 +54,7 @@ var LibraryDylink = { $replaceORIGIN__deps: ['$PATH'], $replaceORIGIN: (parentLibName, rpath) => { if (rpath.startsWith('$ORIGIN')) { - // TODO: what to do if we only know the relative path of the file? It will return "." here. + // TODO: what to do if we only know the relative path of the file? It will return '.' here. var origin = PATH.dirname(parentLibName); return rpath.replace('$ORIGIN', origin); } @@ -101,7 +101,7 @@ var LibraryDylink = { // In theory this if statement could be done on // creating the function, but I just added this to // save wasting code space as it only happens on exception. - if (sig[0] == "j") return 0n; + if (sig[0] == 'j') return 0n; #endif } }, @@ -265,7 +265,7 @@ var LibraryDylink = { #endif } #if DYLINK_DEBUG - dbg("done updateGOT"); + dbg('done updateGOT'); #endif }, @@ -401,7 +401,7 @@ var LibraryDylink = { $getMemory: (size) => { // After the runtime is initialized, we must only use sbrk() normally. #if DYLINK_DEBUG - dbg("getMemory: " + size + " runtimeInitialized=" + runtimeInitialized); + dbg(`getMemory: ${size} runtimeInitialized=${runtimeInitialized}`); #endif if (runtimeInitialized) { // Currently we don't support freeing of static data when modules are @@ -702,7 +702,7 @@ var LibraryDylink = { assert({{{ from64Expr('wasmTable.length') }}} == tableBase, `unexpected table size while loading ${libName}: ${wasmTable.length}`); #endif #if DYLINK_DEBUG - dbg("loadModule: growing table by: " + metadata.tableSize); + dbg(`loadModule: growing table by: ${metadata.tableSize}`); #endif wasmTable.grow({{{ toIndexType('metadata.tableSize') }}}); } @@ -990,7 +990,7 @@ var LibraryDylink = { dbg(`setDylinkStackLimits for '${name}'`); #endif var lib = LDSO.loadedLibsByName[name]; - lib.exports['__set_stack_limits']?.({{{ to64("stackTop") }}}, {{{ to64("stackMax") }}}); + lib.exports['__set_stack_limits']?.({{{ to64('stackTop') }}}, {{{ to64('stackMax') }}}); } }, #endif @@ -1078,7 +1078,7 @@ var LibraryDylink = { // // If a library was already loaded, it is not loaded a second time. However // flags.global and flags.nodelete are handled every time a load request is made. - // Once a library becomes "global" or "nodelete", it cannot be removed or unloaded. + // Once a library becomes 'global' or 'nodelete', it cannot be removed or unloaded. $loadDynamicLibrary__deps: ['$LDSO', '$loadWebAssemblyModule', '$mergeLibSymbols', '$newDSO', '$asyncLoad', @@ -1122,7 +1122,7 @@ var LibraryDylink = { dso.global = true; mergeLibSymbols(dso.exports, libName) } - // same for "nodelete" + // same for 'nodelete' if (flags.nodelete && dso.refcount !== Infinity) { dso.refcount = Infinity; } @@ -1219,7 +1219,7 @@ var LibraryDylink = { if (flags.loadAsync) { #if DYLINK_DEBUG - dbg("loadDynamicLibrary: done (async)"); + dbg('loadDynamicLibrary: done (async)'); #endif return getExports().then((exports) => { moduleLoaded(exports); @@ -1229,7 +1229,7 @@ var LibraryDylink = { moduleLoaded(getExports()); #if DYLINK_DEBUG - dbg("loadDynamicLibrary: done"); + dbg('loadDynamicLibrary: done'); #endif return true; }, @@ -1334,7 +1334,7 @@ var LibraryDylink = { _dlsym_catchup_js: (handle, symbolIndex) => { #if DYLINK_DEBUG - dbg("_dlsym_catchup: handle=" + ptrToString(handle) + " symbolIndex=" + symbolIndex); + dbg(`_dlsym_catchup: handle=${ptrToString(handle)} symbolIndex=${symbolIndex}`); #endif var lib = LDSO.loadedLibsByHandle[handle]; var symDict = lib.exports; diff --git a/src/lib/libegl.js b/src/lib/libegl.js index 1724f91293bef..17c0b9a819864 100644 --- a/src/lib/libegl.js +++ b/src/lib/libegl.js @@ -422,10 +422,10 @@ var LibraryEGL = { // Existing Android implementation seems to do so at least. return 1; case 0x3057: // EGL_WIDTH - {{{ makeSetValue('value', '0', "Browser.getCanvas().width", 'i32') }}}; + {{{ makeSetValue('value', '0', 'Browser.getCanvas().width', 'i32') }}}; return 1; case 0x3056: // EGL_HEIGHT - {{{ makeSetValue('value', '0', "Browser.getCanvas().height", 'i32') }}}; + {{{ makeSetValue('value', '0', 'Browser.getCanvas().height', 'i32') }}}; return 1; case 0x3090: // EGL_HORIZONTAL_RESOLUTION {{{ makeSetValue('value', '0', '-1' /* EGL_UNKNOWN */, 'i32') }}}; @@ -521,10 +521,10 @@ var LibraryEGL = { if (EGL.stringCache[name]) return EGL.stringCache[name]; var ret; switch (name) { - case 0x3053 /* EGL_VENDOR */: ret = stringToNewUTF8("Emscripten"); break; - case 0x3054 /* EGL_VERSION */: ret = stringToNewUTF8("1.4 Emscripten EGL"); break; - case 0x3055 /* EGL_EXTENSIONS */: ret = stringToNewUTF8(""); break; // Currently not supporting any EGL extensions. - case 0x308D /* EGL_CLIENT_APIS */: ret = stringToNewUTF8("OpenGL_ES"); break; + case 0x3053 /* EGL_VENDOR */: ret = stringToNewUTF8('Emscripten'); break; + case 0x3054 /* EGL_VERSION */: ret = stringToNewUTF8('1.4 Emscripten EGL'); break; + case 0x3055 /* EGL_EXTENSIONS */: ret = stringToNewUTF8(''); break; // Currently not supporting any EGL extensions. + case 0x308D /* EGL_CLIENT_APIS */: ret = stringToNewUTF8('OpenGL_ES'); break; default: EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); return 0; diff --git a/src/lib/libembind.js b/src/lib/libembind.js index 465f72126d1b6..3542d45f8c4e9 100644 --- a/src/lib/libembind.js +++ b/src/lib/libembind.js @@ -321,7 +321,7 @@ var LibraryEmbind = { fromWireType: fromWireType, toWireType: (destructors, value) => { #if ASSERTIONS - if (typeof value != "number" && typeof value != "boolean") { + if (typeof value != 'number' && typeof value != 'boolean') { throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${name}`); } assertIntegerRange(name, value, minRange, maxRange); @@ -370,11 +370,11 @@ var LibraryEmbind = { name, fromWireType: fromWireType, toWireType: (destructors, value) => { - if (typeof value == "number") { + if (typeof value == 'number') { value = BigInt(value); } #if ASSERTIONS - else if (typeof value != "bigint") { + else if (typeof value != 'bigint') { throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${name}`); } assertIntegerRange(name, value, minRange, maxRange); @@ -403,7 +403,7 @@ var LibraryEmbind = { fromWireType: (value) => value, toWireType: (destructors, value) => { #if ASSERTIONS - if (typeof value != "number" && typeof value != "boolean") { + if (typeof value != 'number' && typeof value != 'boolean') { throw new TypeError(`Cannot convert ${embindRepr(value)} to ${name}`); } #endif @@ -690,7 +690,7 @@ var LibraryEmbind = { var argCount = argTypes.length; if (argCount < 2) { - throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); + throwBindingError('argTypes array size mismatch! Must at least get return value and receiver (this) types!'); } #if ASSERTIONS && ASYNCIFY != 2 @@ -700,7 +700,7 @@ var LibraryEmbind = { // Free functions with signature "void function()" do not need an invoker that marshalls between wire types. // TODO: This omits argument count check - enable only at -O3 or similar. - // if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == "void" && !isClassMethodFunc) { + // if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == 'void' && !isClassMethodFunc) { // return FUNCTION_TABLE[fn]; // } @@ -1436,10 +1436,10 @@ var LibraryEmbind = { // This is more useful than the empty stacktrace of `FinalizationRegistry` // callback. var cls = $$.ptrType.registeredClass; - var err = new Error(`Embind found a leaked C++ instance ${cls.name} <${ptrToString($$.ptr)}>.\n` + - "We'll free it automatically in this case, but this functionality is not reliable across various environments.\n" + - "Make sure to invoke .delete() manually once you're done with the instance instead.\n" + - "Originally allocated"); // `.stack` will add "at ..." after this sentence + var err = new Error(`Embind found a leaked C++ instance ${cls.name} <${ptrToString($$.ptr)}>. +We'll free it automatically in this case, but this functionality is not reliable across various environments. +Make sure to invoke .delete() manually once you're done with the instance instead. +Originally allocated`); // `.stack` will add "at ..." after this sentence if ('captureStackTrace' in Error) { Error.captureStackTrace(err, RegisteredPointer_fromWireType); } @@ -1487,7 +1487,7 @@ var LibraryEmbind = { let proto = ClassHandle.prototype; Object.assign(proto, { - "isAliasOf"(other) { + 'isAliasOf'(other) { if (!(this instanceof ClassHandle)) { return false; } @@ -1514,7 +1514,7 @@ var LibraryEmbind = { return leftClass === rightClass && left === right; }, - "clone"() { + 'clone'() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } @@ -1535,7 +1535,7 @@ var LibraryEmbind = { } }, - "delete"() { + 'delete'() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } @@ -1553,11 +1553,11 @@ var LibraryEmbind = { } }, - "isDeleted"() { + 'isDeleted'() { return !this.$$.ptr; }, - "deleteLater"() { + 'deleteLater'() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } @@ -1886,7 +1886,7 @@ var LibraryEmbind = { classType = classType[0]; var humanName = `${classType.name}.${methodName}`; - if (methodName.startsWith("@@")) { + if (methodName.startsWith('@@')) { methodName = Symbol[methodName.substring(2)]; } @@ -2166,7 +2166,7 @@ var LibraryEmbind = { wrapperPrototype['__construct'] = function __construct(...args) { if (this === wrapperPrototype) { - throwBindingError("Pass correct 'this' to __construct"); + throwBindingError('Pass correct "this" to __construct'); } var inner = baseConstructor['implement'](this, ...args); @@ -2183,7 +2183,7 @@ var LibraryEmbind = { wrapperPrototype['__destruct'] = function __destruct() { if (this === wrapperPrototype) { - throwBindingError("Pass correct 'this' to __destruct"); + throwBindingError('Pass correct "this" to __destruct'); } detachFinalizer(this); diff --git a/src/lib/libembind_shared.js b/src/lib/libembind_shared.js index e75caea394069..edc1b68fdd3ce 100644 --- a/src/lib/libembind_shared.js +++ b/src/lib/libembind_shared.js @@ -103,22 +103,22 @@ var LibraryEmbindShared = { $getFunctionName__deps: [], $getFunctionName: (signature) => { signature = signature.trim(); - const argsIndex = signature.indexOf("("); + const argsIndex = signature.indexOf('('); if (argsIndex === -1) return signature; #if ASSERTIONS - assert(signature.endsWith(")"), "Parentheses for argument names should match."); + assert(signature.endsWith(')'), 'Parentheses for argument names should match.'); #endif return signature.slice(0, argsIndex); }, $getFunctionArgsName__deps: [], $getFunctionArgsName: (signature) => { signature = signature.trim(); - const argsIndex = signature.indexOf("("); + const argsIndex = signature.indexOf('('); if (argsIndex == -1) return; // Return undefined to mean we don't have any argument names #if ASSERTIONS - assert(signature.endsWith(")"), "Parentheses for argument names should match."); + assert(signature.endsWith(')'), 'Parentheses for argument names should match.'); #endif - return signature.slice(argsIndex + 1, -1).replaceAll(" ", "").split(",").filter(n => n.length); + return signature.slice(argsIndex + 1, -1).replaceAll(' ', '').split(',').filter(n => n.length); }, $heap32VectorToArray: (count, firstElement) => { var array = []; @@ -222,7 +222,7 @@ var LibraryEmbindShared = { var invokerFnBody = `return function (${argsList}) {\n`; #if ASSERTIONS - invokerFnBody += "checkArgCount(arguments.length, minArgs, maxArgs, humanName, throwBindingError);\n"; + invokerFnBody += 'checkArgCount(arguments.length, minArgs, maxArgs, humanName, throwBindingError);\n'; #endif #if EMSCRIPTEN_TRACING @@ -230,14 +230,14 @@ var LibraryEmbindShared = { #endif if (needsDestructorStack) { - invokerFnBody += "var destructors = [];\n"; + invokerFnBody += 'var destructors = [];\n'; } - var dtorStack = needsDestructorStack ? "destructors" : "null"; - var args1 = ["humanName", "throwBindingError", "invoker", "fn", "runDestructors", "fromRetWire", "toClassParamWire"]; + var dtorStack = needsDestructorStack ? 'destructors' : 'null'; + var args1 = ['humanName', 'throwBindingError', 'invoker', 'fn', 'runDestructors', 'fromRetWire', 'toClassParamWire']; #if EMSCRIPTEN_TRACING - args1.push("Module"); + args1.push('Module'); #endif if (isClassMethodFunc) { @@ -250,21 +250,21 @@ var LibraryEmbindShared = { args1.push(argName); } - invokerFnBody += (returns || isAsync ? "var rv = ":"") + `invoker(${argsListWired});\n`; + invokerFnBody += (returns || isAsync ? 'var rv = ' : '') + `invoker(${argsListWired});\n`; - var returnVal = returns ? "rv" : ""; + var returnVal = returns ? 'rv' : ''; #if ASYNCIFY == 1 - args1.push("Asyncify"); + args1.push('Asyncify'); #endif #if ASYNCIFY invokerFnBody += `function onDone(${returnVal}) {\n`; #endif if (needsDestructorStack) { - invokerFnBody += "runDestructors(destructors);\n"; + invokerFnBody += 'runDestructors(destructors);\n'; } else { for (var i = isClassMethodFunc?1:2; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. Also skip class type if not a method. - var paramName = (i === 1 ? "thisWired" : ("arg"+(i - 2)+"Wired")); + var paramName = (i === 1 ? 'thisWired' : `arg${i - 2}Wired`); if (argTypes[i].destructorFunction !== null) { invokerFnBody += `${paramName}_dtor(${paramName});\n`; args1.push(`${paramName}_dtor`); @@ -273,26 +273,26 @@ var LibraryEmbindShared = { } if (returns) { - invokerFnBody += "var ret = fromRetWire(rv);\n" + + invokerFnBody += 'var ret = fromRetWire(rv);\n' + #if EMSCRIPTEN_TRACING - "Module.emscripten_trace_exit_context();\n" + + 'Module.emscripten_trace_exit_context();\n' + #endif - "return ret;\n"; + 'return ret;\n'; } else { #if EMSCRIPTEN_TRACING - invokerFnBody += "Module.emscripten_trace_exit_context();\n"; + invokerFnBody += 'Module.emscripten_trace_exit_context();\n'; #endif } #if ASYNCIFY == 1 - invokerFnBody += "}\n"; + invokerFnBody += '}\n'; invokerFnBody += `return Asyncify.currData ? Asyncify.whenDone().then(onDone) : onDone(${returnVal});\n` #elif ASYNCIFY == 2 - invokerFnBody += "}\n"; - invokerFnBody += "return " + (isAsync ? "rv.then(onDone)" : `onDone(${returnVal})`) + ";"; + invokerFnBody += '}\n'; + invokerFnBody += 'return ' + (isAsync ? 'rv.then(onDone)' : `onDone(${returnVal})`) + ';'; #endif - invokerFnBody += "}\n"; + invokerFnBody += '}\n'; #if ASSERTIONS args1.push('checkArgCount', 'minArgs', 'maxArgs'); diff --git a/src/lib/libeventloop.js b/src/lib/libeventloop.js index c024e755a101d..097878560b9da 100644 --- a/src/lib/libeventloop.js +++ b/src/lib/libeventloop.js @@ -69,7 +69,7 @@ LibraryJSEventLoop = { ++__setImmediate_id_counter; } } - addEventListener("message", __setImmediate_cb, true); + addEventListener('message', __setImmediate_cb, true); emSetImmediate = (func) => { #if PTHREADS if (ENVIRONMENT_IS_WORKER) { @@ -370,7 +370,7 @@ LibraryJSEventLoop = { setImmediates.shift()(); } }; - addEventListener("message", MainLoop_setImmediate_messageHandler, true); + addEventListener('message', MainLoop_setImmediate_messageHandler, true); MainLoop.setImmediate = /** @type{function(function(): ?, ...?): number} */((func) => { setImmediates.push(func); if (ENVIRONMENT_IS_WORKER) { @@ -455,7 +455,7 @@ LibraryJSEventLoop = { } } #if RUNTIME_DEBUG - dbg(`main loop blocker "${blocker.name}" took '${Date.now() - start} ms`); //, left: ' + MainLoop.remainingBlockers); + dbg(`main loop blocker '${blocker.name}' took ${Date.now() - start} ms`); //, left: ' + MainLoop.remainingBlockers); #endif MainLoop.updateStatus(); diff --git a/src/lib/libfetchfs.js b/src/lib/libfetchfs.js index d0b704034d5f6..26d14d295ed19 100644 --- a/src/lib/libfetchfs.js +++ b/src/lib/libfetchfs.js @@ -10,7 +10,7 @@ addToLibrary({ createBackend(opts) { return withStackSave( () => _wasmfs_create_fetch_backend( - stringToUTF8OnStack(opts.base_url ?? ""), + stringToUTF8OnStack(opts.base_url ?? ''), opts.chunkSize | 0 ) ); @@ -19,5 +19,5 @@ addToLibrary({ }); if (!WASMFS) { - error("using -lfetchfs.js requires using WasmFS (-sWASMFS)"); + error('using -lfetchfs.js requires using WasmFS (-sWASMFS)'); } diff --git a/src/lib/libfs.js b/src/lib/libfs.js index 2c898f94af863..0db29fb018303 100644 --- a/src/lib/libfs.js +++ b/src/lib/libfs.js @@ -1147,7 +1147,7 @@ FS.staticInit();`; }); }, open(path, flags, mode = 0o666) { - if (path === "") { + if (path === '') { throw new FS.ErrnoError({{{ cDefs.ENOENT }}}); } flags = FS_modeStringToFlags(flags); @@ -1161,7 +1161,7 @@ FS.staticInit();`; if (typeof path == 'object') { node = path; } else { - isDirPath = path.endsWith("/"); + isDirPath = path.endsWith('/'); // noent_okay makes it so that if the final component of the path // doesn't exist, lookupPath returns `node: undefined`. `path` will be // updated to point to the target of all symlinks. @@ -1770,7 +1770,7 @@ FS.staticInit();`; dbg(`forceLoadFile: ${obj.url}`) #endif if (globalThis.XMLHttpRequest) { - abort("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."); + abort('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.'); } else { // Command-line. try { obj.contents = readBinary(obj.url); @@ -1813,11 +1813,11 @@ FS.staticInit();`; var xhr = new XMLHttpRequest(); xhr.open('HEAD', url, false); xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`); + var datalength = Number(xhr.getResponseHeader('Content-length')); var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + var hasByteServing = (header = xhr.getResponseHeader('Accept-Ranges')) && header === 'bytes'; + var usesGzip = (header = xhr.getResponseHeader('Content-Encoding')) && header === 'gzip'; #if SMALL_XHR_CHUNKS var chunkSize = 1024; // Chunk size in bytes @@ -1835,7 +1835,7 @@ FS.staticInit();`; // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. var xhr = new XMLHttpRequest(); xhr.open('GET', url, false); - if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + if (datalength !== chunkSize) xhr.setRequestHeader('Range', `bytes=${from}-${to}`); // Some hints to the browser that we want binary data. xhr.responseType = 'arraybuffer'; @@ -1844,7 +1844,7 @@ FS.staticInit();`; } xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`); if (xhr.response !== undefined) { return new Uint8Array(/** @type{Array} */(xhr.response || [])); } @@ -1867,7 +1867,7 @@ FS.staticInit();`; chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file datalength = this.getter(0).length; chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); + out('LazyFiles on gzip forces download of the whole file when length is accessed'); } this._length = datalength; diff --git a/src/lib/libglemu.js b/src/lib/libglemu.js index 72cbff0340776..c92bfd3a8d591 100644 --- a/src/lib/libglemu.js +++ b/src/lib/libglemu.js @@ -471,7 +471,7 @@ var LibraryGLEmulation = { {{{ fromPtr('length') }}} var source = GL.getSource(shader, count, string, length); #if GL_DEBUG - dbg("glShaderSource: Input: \n" + source); + dbg('glShaderSource: Input: \n' + source); GL.shaderOriginalSources[shader] = source; #endif // XXX We add attributes and uniforms to shaders. The program can ask for the # of them, and see the @@ -575,7 +575,7 @@ var LibraryGLEmulation = { } #if GL_DEBUG GL.shaderSources[shader] = source; - dbg("glShaderSource: Output: \n" + source); + dbg('glShaderSource: Output: \n' + source); #endif GLctx.shaderSource(GL.shaders[shader], source); }; @@ -756,7 +756,7 @@ var LibraryGLEmulation = { switch (cap) { case 0xDE1: // GL_TEXTURE_2D - XXX not according to spec, and not in desktop GL, but works in some GLES1.x apparently, so support it #if ASSERTIONS - abort("GL_TEXTURE_2D is not a spec-defined capability for gl{Enable,Disable}ClientState."); + abort('GL_TEXTURE_2D is not a spec-defined capability for gl{Enable,Disable}ClientState.'); #endif // Fall through: case 0x8078: // GL_TEXTURE_COORD_ARRAY @@ -1058,12 +1058,12 @@ var LibraryGLEmulation = { var GL_RGBA = 0x1908; // Our defs: - var TEXENVJIT_NAMESPACE_PREFIX = "tej_"; + var TEXENVJIT_NAMESPACE_PREFIX = 'tej_'; // Not actually constant, as they can be changed between JIT passes: - var TEX_UNIT_UNIFORM_PREFIX = "uTexUnit"; - var TEX_COORD_VARYING_PREFIX = "vTexCoord"; - var PRIM_COLOR_VARYING = "vPrimColor"; - var TEX_MATRIX_UNIFORM_PREFIX = "uTexMatrix"; + var TEX_UNIT_UNIFORM_PREFIX = 'uTexUnit'; + var TEX_COORD_VARYING_PREFIX = 'vTexCoord'; + var PRIM_COLOR_VARYING = 'vPrimColor'; + var TEX_MATRIX_UNIFORM_PREFIX = 'uTexMatrix'; // Static vars: var s_texUnits = null; //[]; @@ -1073,11 +1073,11 @@ var LibraryGLEmulation = { // Static funcs: function abort_noSupport(info) { - abort("[TexEnvJIT] ABORT: No support: " + info); + abort('[TexEnvJIT] ABORT: No support: ' + info); } function abort_sanity(info) { - abort("[TexEnvJIT] ABORT: Sanity failure: " + info); + abort('[TexEnvJIT] ABORT: Sanity failure: ' + info); } function genTexUnitSampleExpr(texUnitID) { @@ -1087,15 +1087,15 @@ var LibraryGLEmulation = { var func = null; switch (texType) { case GL_TEXTURE_1D: - func = "texture2D"; + func = 'texture2D'; break; case GL_TEXTURE_2D: - func = "texture2D"; + func = 'texture2D'; break; case GL_TEXTURE_3D: - return abort_noSupport("No support for 3D textures."); + return abort_noSupport('No support for 3D textures.'); case GL_TEXTURE_CUBE_MAP: - func = "textureCube"; + func = 'textureCube'; break; default: return abort_sanity(`Unknown texType: ${ptrToString(texType)}`); @@ -1112,13 +1112,13 @@ var LibraryGLEmulation = { switch (op) { case GL_SRC_COLOR: case GL_ONE_MINUS_SRC_COLOR: - return "vec3"; + return 'vec3'; case GL_SRC_ALPHA: case GL_ONE_MINUS_SRC_ALPHA: - return "float"; + return 'float'; } - return abort_noSupport("Unsupported combiner op: " + ptrToString(op)); + return abort_noSupport('Unsupported combiner op: ' + ptrToString(op)); } function getCurTexUnit() { @@ -1143,25 +1143,25 @@ var LibraryGLEmulation = { srcExpr = previousVar; break; default: - return abort_noSupport("Unsupported combiner src: " + ptrToString(src)); + return abort_noSupport('Unsupported combiner src: ' + ptrToString(src)); } var expr = null; switch (op) { case GL_SRC_COLOR: - expr = srcExpr + ".rgb"; + expr = srcExpr + '.rgb'; break; case GL_ONE_MINUS_SRC_COLOR: - expr = "(vec3(1.0) - " + srcExpr + ".rgb)"; + expr = `(vec3(1.0) - ${srcExpr}.rgb)`; break; case GL_SRC_ALPHA: - expr = srcExpr + ".a"; + expr = srcExpr + '.a'; break; case GL_ONE_MINUS_SRC_ALPHA: - expr = "(1.0 - " + srcExpr + ".a)"; + expr = `(1.0 - ${srcExpr}.a)`; break; default: - return abort_noSupport("Unsupported combiner op: " + ptrToString(op)); + return abort_noSupport('Unsupported combiner op: ' + ptrToString(op)); } return expr; @@ -1309,7 +1309,7 @@ var LibraryGLEmulation = { CTexUnit.prototype.genPassLines = function CTexUnit_genPassLines(passOutputVar, passInputVar, texUnitID) { if (!this.enabled()) { - return ["vec4 " + passOutputVar + " = " + passInputVar + ";"]; + return [`vec4 ${passOutputVar} = ${passInputVar};`]; } var lines = this.env.genPassLines(passOutputVar, passInputVar, texUnitID).join('\n'); @@ -1324,9 +1324,9 @@ var LibraryGLEmulation = { var secondOccurrence = lines.slice(load.index+1).indexOf(texLoadExpr); if (secondOccurrence != -1) { // And also has a second occurrence of same load expression.. // Create new var to store the common load. - var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + texUnitID + "_"; - var texLoadVar = prefix + 'texload' + loadCounter++; - var texLoadLine = 'vec4 ' + texLoadVar + ' = ' + texLoadExpr + ';\n'; + var prefix = `${TEXENVJIT_NAMESPACE_PREFIX}env${texUnitID}_`; + var texLoadVar = `${prefix}texload${loadCounter++}`; + var texLoadLine = `vec4 ${texLoadVar} = ${texLoadExpr};\n`; texLoadLines += texLoadLine + '\n'; // Store the generated texture load statements in a temp string to not confuse regex search in progress. lines = lines.split(texLoadExpr).join(texLoadVar); // Reset regex search, since we modified the string. @@ -1363,7 +1363,7 @@ var LibraryGLEmulation = { * Av = As */ return [ - "vec4 " + passOutputVar + " = " + genTexUnitSampleExpr(texUnitID) + ";", + `vec4 ${passOutputVar} = ${genTexUnitSampleExpr(texUnitID)};`, ]; } case GL_ADD: { @@ -1371,16 +1371,16 @@ var LibraryGLEmulation = { * Cv = Cp + Cs * Av = ApAs */ - var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + texUnitID + "_"; - var texVar = prefix + "tex"; - var colorVar = prefix + "color"; - var alphaVar = prefix + "alpha"; + var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + texUnitID + '_'; + var texVar = prefix + 'tex'; + var colorVar = prefix + 'color'; + var alphaVar = prefix + 'alpha'; return [ - "vec4 " + texVar + " = " + genTexUnitSampleExpr(texUnitID) + ";", - "vec3 " + colorVar + " = " + passInputVar + ".rgb + " + texVar + ".rgb;", - "float " + alphaVar + " = " + passInputVar + ".a * " + texVar + ".a;", - "vec4 " + passOutputVar + " = vec4(" + colorVar + ", " + alphaVar + ");", + 'vec4 ' + texVar + ' = ' + genTexUnitSampleExpr(texUnitID) + ';', + 'vec3 ' + colorVar + ' = ' + passInputVar + '.rgb + ' + texVar + '.rgb;', + 'float ' + alphaVar + ' = ' + passInputVar + '.a * ' + texVar + '.a;', + 'vec4 ' + passOutputVar + ' = vec4(' + colorVar + ', ' + alphaVar + ');', ]; } case GL_MODULATE: { @@ -1389,36 +1389,36 @@ var LibraryGLEmulation = { * Av = ApAs */ var line = [ - "vec4 " + passOutputVar, - " = ", + 'vec4 ' + passOutputVar, + ' = ', passInputVar, - " * ", + ' * ', genTexUnitSampleExpr(texUnitID), - ";", + ';', ]; - return [line.join("")]; + return [line.join('')]; } case GL_DECAL: { /* RGBA: * Cv = Cp(1 - As) + CsAs * Av = Ap */ - var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + texUnitID + "_"; - var texVar = prefix + "tex"; - var colorVar = prefix + "color"; - var alphaVar = prefix + "alpha"; + var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + texUnitID + '_'; + var texVar = prefix + 'tex'; + var colorVar = prefix + 'color'; + var alphaVar = prefix + 'alpha'; return [ - "vec4 " + texVar + " = " + genTexUnitSampleExpr(texUnitID) + ";", + 'vec4 ' + texVar + ' = ' + genTexUnitSampleExpr(texUnitID) + ';', [ - "vec3 " + colorVar + " = ", - passInputVar + ".rgb * (1.0 - " + texVar + ".a)", - " + ", - texVar + ".rgb * " + texVar + ".a", - ";" - ].join(""), - "float " + alphaVar + " = " + passInputVar + ".a;", - "vec4 " + passOutputVar + " = vec4(" + colorVar + ", " + alphaVar + ");", + 'vec3 ' + colorVar + ' = ', + passInputVar + '.rgb * (1.0 - ' + texVar + '.a)', + ' + ', + texVar + '.rgb * ' + texVar + '.a', + ';' + ].join(''), + 'float ' + alphaVar + ' = ' + passInputVar + '.a;', + 'vec4 ' + passOutputVar + ' = vec4(' + colorVar + ', ' + alphaVar + ');', ]; } case GL_BLEND: { @@ -1426,28 +1426,28 @@ var LibraryGLEmulation = { * Cv = Cp(1 - Cs) + CcCs * Av = As */ - var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + texUnitID + "_"; - var texVar = prefix + "tex"; - var colorVar = prefix + "color"; - var alphaVar = prefix + "alpha"; + var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + texUnitID + '_'; + var texVar = prefix + 'tex'; + var colorVar = prefix + 'color'; + var alphaVar = prefix + 'alpha'; return [ - "vec4 " + texVar + " = " + genTexUnitSampleExpr(texUnitID) + ";", + 'vec4 ' + texVar + ' = ' + genTexUnitSampleExpr(texUnitID) + ';', [ - "vec3 " + colorVar + " = ", - passInputVar + ".rgb * (1.0 - " + texVar + ".rgb)", - " + ", - PRIM_COLOR_VARYING + ".rgb * " + texVar + ".rgb", - ";" - ].join(""), - "float " + alphaVar + " = " + texVar + ".a;", - "vec4 " + passOutputVar + " = vec4(" + colorVar + ", " + alphaVar + ");", + 'vec3 ' + colorVar + ' = ', + passInputVar + '.rgb * (1.0 - ' + texVar + '.rgb)', + ' + ', + PRIM_COLOR_VARYING + '.rgb * ' + texVar + '.rgb', + ';' + ].join(''), + 'float ' + alphaVar + ' = ' + texVar + '.a;', + 'vec4 ' + passOutputVar + ' = vec4(' + colorVar + ', ' + alphaVar + ');', ]; } case GL_COMBINE: { - var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + texUnitID + "_"; - var colorVar = prefix + "color"; - var alphaVar = prefix + "alpha"; + var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + texUnitID + '_'; + var colorVar = prefix + 'color'; + var alphaVar = prefix + 'alpha'; var colorLines = this.genCombinerLines(true, colorVar, passInputVar, texUnitID, this.colorCombiner, this.colorSrc, this.colorOp); @@ -1456,24 +1456,24 @@ var LibraryGLEmulation = { this.alphaCombiner, this.alphaSrc, this.alphaOp); // Generate scale, but avoid generating an identity op that multiplies by one. - var scaledColor = (this.colorScale == 1) ? colorVar : (colorVar + " * " + valToFloatLiteral(this.colorScale)); - var scaledAlpha = (this.alphaScale == 1) ? alphaVar : (alphaVar + " * " + valToFloatLiteral(this.alphaScale)); + var scaledColor = (this.colorScale == 1) ? colorVar : (colorVar + ' * ' + valToFloatLiteral(this.colorScale)); + var scaledAlpha = (this.alphaScale == 1) ? alphaVar : (alphaVar + ' * ' + valToFloatLiteral(this.alphaScale)); var line = [ - "vec4 " + passOutputVar, - " = ", - "vec4(", + 'vec4 ' + passOutputVar, + ' = ', + 'vec4(', scaledColor, - ", ", + ', ', scaledAlpha, - ")", - ";", - ].join(""); + ')', + ';', + ].join(''); return [].concat(colorLines, alphaLines, [line]); } } - return abort_noSupport("Unsupported TexEnv mode: " + ptrToString(this.mode)); + return abort_noSupport('Unsupported TexEnv mode: ' + ptrToString(this.mode)); } CTexEnv.prototype.genCombinerLines = function CTexEnv_getCombinerLines(isColor, outputVar, @@ -1497,20 +1497,20 @@ var LibraryGLEmulation = { break; default: - return abort_noSupport("Unsupported combiner: " + ptrToString(combiner)); + return abort_noSupport('Unsupported combiner: ' + ptrToString(combiner)); } var constantExpr = [ - "vec4(", + 'vec4(', valToFloatLiteral(this.envColor[0]), - ", ", + ', ', valToFloatLiteral(this.envColor[1]), - ", ", + ', ', valToFloatLiteral(this.envColor[2]), - ", ", + ', ', valToFloatLiteral(this.envColor[3]), - ")", - ].join(""); + ')', + ].join(''); var src0Expr = (argsNeeded >= 1) ? genCombinerSourceExpr(texUnitID, constantExpr, passInputVar, srcArr[0], opArr[0]) : null; var src1Expr = (argsNeeded >= 2) ? genCombinerSourceExpr(texUnitID, constantExpr, passInputVar, srcArr[1], opArr[1]) @@ -1518,7 +1518,7 @@ var LibraryGLEmulation = { var src2Expr = (argsNeeded >= 3) ? genCombinerSourceExpr(texUnitID, constantExpr, passInputVar, srcArr[2], opArr[2]) : null; - var outputType = isColor ? "vec3" : "float"; + var outputType = isColor ? 'vec3' : 'float'; var lines = null; switch (combiner) { case GL_REPLACE: { @@ -1550,7 +1550,7 @@ var LibraryGLEmulation = { } default: - return abort_sanity("Unmatched TexEnv.colorCombiner?"); + return abort_sanity('Unmatched TexEnv.colorCombiner?'); } return lines; @@ -1590,20 +1590,20 @@ var LibraryGLEmulation = { s_requiredTexUnitsForPass.push(i); - var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + i + "_"; - var passOutputVar = prefix + "result"; + var prefix = TEXENVJIT_NAMESPACE_PREFIX + 'env' + i + '_'; + var passOutputVar = prefix + 'result'; var newLines = s_texUnits[i].genPassLines(passOutputVar, lastPassVar, i); - lines = lines.concat(newLines, [""]); + lines = lines.concat(newLines, ['']); lastPassVar = passOutputVar; } - lines.push(resultDest + " = " + lastPassVar + ";"); + lines.push(resultDest + ' = ' + lastPassVar + ';'); - var indent = ""; - for (var i = 0; i < indentSize; i++) indent += " "; + var indent = ''; + for (var i = 0; i < indentSize; i++) indent += ' '; - var output = indent + lines.join("\n" + indent); + var output = indent + lines.join('\n' + indent); return output; }, @@ -2044,7 +2044,7 @@ var LibraryGLEmulation = { GLImmediate.rendererComponents[name] = 1; #if ASSERTIONS if (GLImmediate.enabledClientAttributes[name]) { - warnOnce("Warning: glTexCoord used after EnableClientState for TEXTURE_COORD_ARRAY for TEXTURE0. Disabling TEXTURE_COORD_ARRAY..."); + warnOnce('Warning: glTexCoord used after EnableClientState for TEXTURE_COORD_ARRAY for TEXTURE0. Disabling TEXTURE_COORD_ARRAY...'); } #endif GLImmediate.enabledClientAttributes[name] = true; @@ -2161,7 +2161,7 @@ var LibraryGLEmulation = { #if ASSERTIONS if (!useCurrProgram) { if (GLImmediate.TexEnvJIT.getTexUnitType(i) == 0) { - warnOnce("GL_TEXTURE" + i + " coords are supplied, but that texture unit is disabled in the fixed-function pipeline."); + warnOnce('GL_TEXTURE' + i + ' coords are supplied, but that texture unit is disabled in the fixed-function pipeline.'); } } #endif @@ -2341,7 +2341,7 @@ var LibraryGLEmulation = { ' return fog; ', '}', '', - ].join("\n"); + ].join('\n'); } var fogPass = null; @@ -2397,7 +2397,7 @@ var LibraryGLEmulation = { fsAlphaTestPass, '}', '' - ].join("\n").replace(/\n\n+/g, '\n'); + ].join('\n').replace(/\n\n+/g, '\n'); this.fragmentShader = GLctx.createShader(GLctx.FRAGMENT_SHADER); GLctx.shaderSource(this.fragmentShader, fsSource); @@ -3024,7 +3024,7 @@ var LibraryGLEmulation = { var numVertices = 4 * GLImmediate.vertexCounter / GLImmediate.stride; if (!numVertices) return; #if ASSERTIONS - assert(numVertices % 1 == 0, "`numVertices` must be an integer."); + assert(numVertices % 1 == 0, '`numVertices` must be an integer.'); #endif var emulatedElementArrayBuffer = false; var numIndexes = 0; diff --git a/src/lib/libglew.js b/src/lib/libglew.js index dc8f9a3947a23..f054ae9b2b158 100644 --- a/src/lib/libglew.js +++ b/src/lib/libglew.js @@ -49,19 +49,19 @@ var LibraryGLEW = { errorStringConstantFromCode(error) { if (GLEW.isLinaroFork) { switch (error) { - case 4:return "OpenGL ES lib expected, found OpenGL lib"; // GLEW_ERROR_NOT_GLES_VERSION - case 5:return "OpenGL lib expected, found OpenGL ES lib"; // GLEW_ERROR_GLES_VERSION - case 6:return "Missing EGL version"; // GLEW_ERROR_NO_EGL_VERSION - case 7:return "EGL 1.1 and up are supported"; // GLEW_ERROR_EGL_VERSION_10_ONLY + case 4:return 'OpenGL ES lib expected, found OpenGL lib'; // GLEW_ERROR_NOT_GLES_VERSION + case 5:return 'OpenGL lib expected, found OpenGL ES lib'; // GLEW_ERROR_GLES_VERSION + case 6:return 'Missing EGL version'; // GLEW_ERROR_NO_EGL_VERSION + case 7:return 'EGL 1.1 and up are supported'; // GLEW_ERROR_EGL_VERSION_10_ONLY default:break; } } switch (error) { - case 0:return "No error"; // GLEW_OK || GLEW_NO_ERROR - case 1:return "Missing GL version"; // GLEW_ERROR_NO_GL_VERSION - case 2:return "GL 1.1 and up are supported"; // GLEW_ERROR_GL_VERSION_10_ONLY - case 3:return "GLX 1.2 and up are supported"; // GLEW_ERROR_GLX_VERSION_11_ONLY + case 0:return 'No error'; // GLEW_OK || GLEW_NO_ERROR + case 1:return 'Missing GL version'; // GLEW_ERROR_NO_GL_VERSION + case 2:return 'GL 1.1 and up are supported'; // GLEW_ERROR_GL_VERSION_10_ONLY + case 3:return 'GLX 1.2 and up are supported'; // GLEW_ERROR_GLX_VERSION_11_ONLY default:return null; } }, @@ -70,7 +70,7 @@ var LibraryGLEW = { if (!GLEW.error[error]) { var string = GLEW.errorStringConstantFromCode(error); if (!string) { - string = "Unknown error"; + string = 'Unknown error'; error = 8; // prevent array from growing more than this } GLEW.error[error] = stringToNewUTF8(string); @@ -80,10 +80,10 @@ var LibraryGLEW = { versionStringConstantFromCode(name) { switch (name) { - case 1:return "1.10.0"; // GLEW_VERSION - case 2:return "1"; // GLEW_VERSION_MAJOR - case 3:return "10"; // GLEW_VERSION_MINOR - case 4:return "0"; // GLEW_VERSION_MICRO + case 1:return '1.10.0'; // GLEW_VERSION + case 2:return '1'; // GLEW_VERSION_MAJOR + case 3:return '10'; // GLEW_VERSION_MINOR + case 4:return '0'; // GLEW_VERSION_MICRO default:return null; } }, @@ -106,7 +106,7 @@ var LibraryGLEW = { // extensions from GLEmulations do not come unprefixed // so, try with prefix - return (GLEW.extensions.includes("GL_" + name)); + return (GLEW.extensions.includes('GL_' + name)); }, }, diff --git a/src/lib/libglfw.js b/src/lib/libglfw.js index 95b70ce867426..343da9be95c70 100644 --- a/src/lib/libglfw.js +++ b/src/lib/libglfw.js @@ -842,7 +842,7 @@ var LibraryGLFW = { var filenames = _malloc(event.dataTransfer.files.length * {{{ POINTER_SIZE }}}); var filenamesArray = []; for (var i = 0; i < event.dataTransfer.files.length; ++i) { - var path = `/${drop_dir}/${event.dataTransfer.files[i].name.replace(/\//g, "_")}`; + var path = `/${drop_dir}/${event.dataTransfer.files[i].name.replace(/\//g, '_')}`; var filename = stringToNewUTF8(path); filenamesArray.push(filename); {{{ makeSetValue('filenames', `i*${POINTER_SIZE}` , 'filename', '*') }}}; @@ -907,7 +907,7 @@ var LibraryGLFW = { entry.file((f) => { filesQ.push({ file: f, path: pp }); markDone(fp, false); }) } else if (entry.isDirectory) { if (entriesTree.hasOwnProperty(pp)) entriesTree[pp].subpaths.push(fp); - FS.createPath("/" + drop_dir + pp, entry.name); + FS.createPath('/' + drop_dir + pp, entry.name); var reader = entry.createReader(); var rRead = function (dirEntries) { if (dirEntries.length == 0) { @@ -926,7 +926,7 @@ var LibraryGLFW = { } else { // fallback for browsers that does not support webkitGetAsEntry for (const file of event.dataTransfer.files) { - filesQ.push({ file: file, path: "" }); + filesQ.push({ file: file, path: '' }); } finalize(); } @@ -1126,7 +1126,7 @@ var LibraryGLFW = { for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++) { // no-op } - if (i > 0) abort("glfwCreateWindow only supports one window at time currently"); + if (i > 0) abort('glfwCreateWindow only supports one window at time currently'); // id for window id = i + 1; @@ -1258,7 +1258,7 @@ var LibraryGLFW = { } // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root - var canvasContainer = document.createElement("div"); + var canvasContainer = document.createElement('div'); canvas.parentNode.insertBefore(canvasContainer, canvas); canvasContainer.appendChild(canvas); @@ -1309,11 +1309,11 @@ var LibraryGLFW = { if (canvas.height != hNativeScaled) canvas.height = hNativeScaled; if (typeof canvas.style != 'undefined') { if (!GLFW.isCSSScalingEnabled()) { - canvas.style.setProperty( "width", wNative + "px", "important"); - canvas.style.setProperty("height", hNative + "px", "important"); + canvas.style.setProperty( 'width', wNative + 'px', 'important'); + canvas.style.setProperty('height', hNative + 'px', 'important'); } else { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); + canvas.style.removeProperty( 'width'); + canvas.style.removeProperty('height'); } } }, @@ -1451,7 +1451,7 @@ var LibraryGLFW = { canvas.addEventListener('touchend', GLFW.onMouseButtonUp, true); canvas.addEventListener('mousemove', GLFW.onMousemove, true); canvas.addEventListener('mousedown', GLFW.onMouseButtonDown, true); - canvas.addEventListener("mouseup", GLFW.onMouseButtonUp, true); + canvas.addEventListener('mouseup', GLFW.onMouseButtonUp, true); canvas.addEventListener('wheel', GLFW.onMouseWheel, true); canvas.addEventListener('mousewheel', GLFW.onMouseWheel, true); canvas.addEventListener('mouseenter', GLFW.onMouseenter, true); @@ -1538,7 +1538,7 @@ var LibraryGLFW = { // extensions from GLEmulations do not come unprefixed // so, try with prefix - return (GLFW.extensions.includes("GL_" + extension)); + return (GLFW.extensions.includes('GL_' + extension)); }, glfwSwapInterval__deps: ['emscripten_set_main_loop_timing'], @@ -1550,7 +1550,7 @@ var LibraryGLFW = { #if USE_GLFW == 3 glfwGetVersionString: () => { - GLFW.versionString ||= stringToNewUTF8("3.2.1 JS WebGL Emscripten"); + GLFW.versionString ||= stringToNewUTF8('3.2.1 JS WebGL Emscripten'); return GLFW.versionString; }, @@ -1604,7 +1604,7 @@ var LibraryGLFW = { }, glfwGetMonitorName: (mon) => { - GLFW.monitorString ||= stringToNewUTF8("HTML5 WebGL Canvas"); + GLFW.monitorString ||= stringToNewUTF8('HTML5 WebGL Canvas'); return GLFW.monitorString; }, @@ -1626,9 +1626,9 @@ var LibraryGLFW = { // TODO: implement glfwSetGamma: (monitor, gamma) => 0, - glfwGetGammaRamp: (monitor) => abort("glfwGetGammaRamp not implemented."), + glfwGetGammaRamp: (monitor) => abort('glfwGetGammaRamp not implemented.'), - glfwSetGammaRamp: (monitor, ramp) => abort("glfwSetGammaRamp not implemented."), + glfwSetGammaRamp: (monitor, ramp) => abort('glfwSetGammaRamp not implemented.'), glfwDefaultWindowHints: () => GLFW.defaultWindowHints(), @@ -1784,7 +1784,7 @@ var LibraryGLFW = { glfwSetWindowAspectRatio: (winid, numer, denom) => 0, - glfwGetWindowFrameSize: (winid, left, top, right, bottom) => abort("glfwGetWindowFrameSize not implemented."), + glfwGetWindowFrameSize: (winid, left, top, right, bottom) => abort('glfwGetWindowFrameSize not implemented.'), glfwMaximizeWindow: (winid) => 0, @@ -1792,7 +1792,7 @@ var LibraryGLFW = { glfwRequestWindowAttention: (winid) => 0, // maybe do window.focus()? - glfwSetWindowMonitor: (winid, monitor, xpos, ypos, width, height, refreshRate) => abort("glfwSetWindowMonitor not implemented."), + glfwSetWindowMonitor: (winid, monitor, xpos, ypos, width, height, refreshRate) => abort('glfwSetWindowMonitor not implemented.'), glfwCreateCursor: (image, xhot, yhot) => 0, @@ -1843,9 +1843,9 @@ var LibraryGLFW = { glfwGetKey: (winid, key) => GLFW.getKey(winid, key), - glfwGetKeyName: (key, scancode) => abort("glfwGetKeyName not implemented."), + glfwGetKeyName: (key, scancode) => abort('glfwGetKeyName not implemented.'), - glfwGetKeyScancode: (key) => abort("glfwGetKeyScancode not implemented."), + glfwGetKeyScancode: (key) => abort('glfwGetKeyScancode not implemented.'), glfwGetMouseButton: (winid, button) => GLFW.getMouseButton(winid, button), @@ -1858,7 +1858,7 @@ var LibraryGLFW = { glfwSetCharCallback: (winid, cbfun) => GLFW.setCharCallback(winid, cbfun), - glfwSetCharModsCallback: (winid, cbfun) => abort("glfwSetCharModsCallback not implemented."), + glfwSetCharModsCallback: (winid, cbfun) => abort('glfwSetCharModsCallback not implemented.'), glfwSetMouseButtonCallback: (winid, cbfun) => GLFW.setMouseButtonCallback(winid, cbfun), @@ -1878,11 +1878,11 @@ var LibraryGLFW = { glfwSetDropCallback: (winid, cbfun) => GLFW.setDropCallback(winid, cbfun), - glfwGetTimerValue: () => abort("glfwGetTimerValue is not implemented."), + glfwGetTimerValue: () => abort('glfwGetTimerValue is not implemented.'), - glfwGetTimerFrequency: () => abort("glfwGetTimerFrequency is not implemented."), + glfwGetTimerFrequency: () => abort('glfwGetTimerFrequency is not implemented.'), - glfwGetRequiredInstanceExtensions: (count) => abort("glfwGetRequiredInstanceExtensions is not implemented."), + glfwGetRequiredInstanceExtensions: (count) => abort('glfwGetRequiredInstanceExtensions is not implemented.'), glfwJoystickPresent: (joy) => { GLFW.refreshJoysticks(); @@ -1916,7 +1916,7 @@ var LibraryGLFW = { return state.buttons; }, - glfwGetJoystickHats: (joy, count) => abort("glfwGetJoystickHats is not implemented"), + glfwGetJoystickHats: (joy, count) => abort('glfwGetJoystickHats is not implemented'), glfwGetJoystickName: (joy) => { if (GLFW.joys[joy]) { @@ -1925,13 +1925,13 @@ var LibraryGLFW = { return 0; }, - glfwGetJoystickGUID: (jid) => abort("glfwGetJoystickGUID not implemented"), + glfwGetJoystickGUID: (jid) => abort('glfwGetJoystickGUID not implemented'), - glfwSetJoystickUserPointer: (jid, ptr) => abort("glfwSetJoystickUserPointer not implemented"), + glfwSetJoystickUserPointer: (jid, ptr) => abort('glfwSetJoystickUserPointer not implemented'), - glfwGetJoystickUserPointer: (jid) => abort("glfwGetJoystickUserPointer not implemented"), + glfwGetJoystickUserPointer: (jid) => abort('glfwGetJoystickUserPointer not implemented'), - glfwJoystickIsGamepad: (jid) => abort("glfwJoystickIsGamepad not implemented"), + glfwJoystickIsGamepad: (jid) => abort('glfwJoystickIsGamepad not implemented'), glfwSetJoystickCallback: (cbfun) => GLFW.setJoystickCallback(cbfun), @@ -1953,7 +1953,7 @@ var LibraryGLFW = { GLFW.hints[0x00021004] = alphabits; // GLFW_ALPHA_BITS GLFW.hints[0x00021005] = depthbits; // GLFW_DEPTH_BITS GLFW.hints[0x00021006] = stencilbits; // GLFW_STENCIL_BITS - GLFW.createWindow(width, height, "GLFW2 Window", 0, 0); + GLFW.createWindow(width, height, 'GLFW2 Window', 0, 0); return 1; // GL_TRUE }, @@ -2037,7 +2037,7 @@ var LibraryGLFW = { GLFW.setScrollCallback(GLFW.active.id, cbfun); }, - glfwGetDesktopMode: (mode) => abort("glfwGetDesktopMode is not implemented."), + glfwGetDesktopMode: (mode) => abort('glfwGetDesktopMode is not implemented.'), glfwSleep__deps: ['sleep'], glfwSleep: (time) => _sleep(time), @@ -2071,37 +2071,37 @@ var LibraryGLFW = { // One single thread glfwGetThreadID: () => 0, - glfwCreateMutex: () => abort("glfwCreateMutex is not implemented."), + glfwCreateMutex: () => abort('glfwCreateMutex is not implemented.'), - glfwDestroyMutex: (mutex) => abort("glfwDestroyMutex is not implemented."), + glfwDestroyMutex: (mutex) => abort('glfwDestroyMutex is not implemented.'), - glfwLockMutex: (mutex) => abort("glfwLockMutex is not implemented."), + glfwLockMutex: (mutex) => abort('glfwLockMutex is not implemented.'), - glfwUnlockMutex: (mutex) => abort("glfwUnlockMutex is not implemented."), + glfwUnlockMutex: (mutex) => abort('glfwUnlockMutex is not implemented.'), - glfwCreateCond: () => abort("glfwCreateCond is not implemented."), + glfwCreateCond: () => abort('glfwCreateCond is not implemented.'), - glfwDestroyCond: (cond) => abort("glfwDestroyCond is not implemented."), + glfwDestroyCond: (cond) => abort('glfwDestroyCond is not implemented.'), - glfwWaitCond: (cond, mutex, timeout) => abort("glfwWaitCond is not implemented."), + glfwWaitCond: (cond, mutex, timeout) => abort('glfwWaitCond is not implemented.'), - glfwSignalCond: (cond) => abort("glfwSignalCond is not implemented."), + glfwSignalCond: (cond) => abort('glfwSignalCond is not implemented.'), - glfwBroadcastCond: (cond) => abort("glfwBroadcastCond is not implemented."), + glfwBroadcastCond: (cond) => abort('glfwBroadcastCond is not implemented.'), glfwGetNumberOfProcessors: () => 1, // Threads are disabled anyway… - glfwReadImage: (name, img, flags) => abort("glfwReadImage is not implemented."), + glfwReadImage: (name, img, flags) => abort('glfwReadImage is not implemented.'), - glfwReadMemoryImage: (data, size, img, flags) => abort("glfwReadMemoryImage is not implemented."), + glfwReadMemoryImage: (data, size, img, flags) => abort('glfwReadMemoryImage is not implemented.'), - glfwFreeImage: (img) => abort("glfwFreeImage is not implemented."), + glfwFreeImage: (img) => abort('glfwFreeImage is not implemented.'), - glfwLoadTexture2D: (name, flags) => abort("glfwLoadTexture2D is not implemented."), + glfwLoadTexture2D: (name, flags) => abort('glfwLoadTexture2D is not implemented.'), - glfwLoadMemoryTexture2D: (data, size, flags) => abort("glfwLoadMemoryTexture2D is not implemented."), + glfwLoadMemoryTexture2D: (data, size, flags) => abort('glfwLoadMemoryTexture2D is not implemented.'), - glfwLoadTextureImage2D: (img, flags) => abort("glfwLoadTextureImage2D is not implemented."), + glfwLoadTextureImage2D: (img, flags) => abort('glfwLoadTextureImage2D is not implemented.'), #endif // GLFW2 }; diff --git a/src/lib/libglut.js b/src/lib/libglut.js index 1590c7ee25095..a4b6e98513ea9 100644 --- a/src/lib/libglut.js +++ b/src/lib/libglut.js @@ -207,16 +207,16 @@ var LibraryGLUT = { var touches = event.changedTouches, main = touches[0], - type = ""; + type = ''; switch (event.type) { - case "touchstart": type = "mousedown"; break; - case "touchmove": type = "mousemove"; break; - case "touchend": type = "mouseup"; break; + case 'touchstart': type = 'mousedown'; break; + case 'touchmove': type = 'mousemove'; break; + case 'touchend': type = 'mouseup'; break; default: return; } - var simulatedEvent = document.createEvent("MouseEvent"); + var simulatedEvent = document.createEvent('MouseEvent'); simulatedEvent.initMouseEvent(type, true, true, window, 1, main.screenX, main.screenY, main.clientX, main.clientY, false, @@ -279,8 +279,8 @@ var LibraryGLUT = { var width; var height; if (getFullscreenElement()) { - width = screen["width"]; - height = screen["height"]; + width = screen['width']; + height = screen['height']; } else { width = GLUT.windowWidth; height = GLUT.windowHeight; @@ -293,7 +293,7 @@ var LibraryGLUT = { // Just call it once here. /* Can't call _glutReshapeWindow as that requests cancelling fullscreen. */ if (GLUT.reshapeFunc) { - // out("GLUT.reshapeFunc (from FS): " + width + ", " + height); + // out('GLUT.reshapeFunc (from FS): ' + width + ', ' + height); {{{ makeDynCall('vii', 'GLUT.reshapeFunc') }}}(width, height); } _glutPostRedisplay(); @@ -421,7 +421,7 @@ var LibraryGLUT = { return GLctx.getContextAttributes().antialias ? 1 : 0; default: - abort("glutGet(" + type + ") not implemented yet"); + abort(`glutGet(${type}) not implemented yet`); } }, @@ -561,7 +561,7 @@ var LibraryGLUT = { cursorStyle = 'none'; break; default: - abort("glutSetCursor: Unknown cursor type: " + cursor); + abort('glutSetCursor: Unknown cursor type: ' + cursor); } Browser.getCanvas().style.cursor = cursorStyle; }, diff --git a/src/lib/libhtml5.js b/src/lib/libhtml5.js index 79f0a33df37df..e6438c4237b50 100644 --- a/src/lib/libhtml5.js +++ b/src/lib/libhtml5.js @@ -326,18 +326,18 @@ var LibraryHTML5 = { // scheme should be needed, but the object-specific event callback registration functions should handle them individually). // // Users can also add more special event targets, basically by just doing something like - // specialHTMLTargets["!canvas"] = Module.canvas; + // specialHTMLTargets['!canvas'] = Module.canvas; // (that will let !canvas map to the canvas held in Module.canvas). $specialHTMLTargets__docs: '/** @type {Object} */', #if ENVIRONMENT_MAY_BE_WORKER || ENVIRONMENT_MAY_BE_NODE || ENVIRONMENT_MAY_BE_SHELL || PTHREADS - $specialHTMLTargets: "[0, globalThis.document ?? 0, globalThis.window ?? 0]", + $specialHTMLTargets: '[0, globalThis.document ?? 0, globalThis.window ?? 0]', #else - $specialHTMLTargets: "[0, document, window]", + $specialHTMLTargets: '[0, document, window]', #endif #if DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR $maybeCStringToJsString: (cString) => { - // "cString > 2" checks if the input is a number, and isn't of the special + // 'cString > 2' checks if the input is a number, and isn't of the special // values we accept here, EMSCRIPTEN_EVENT_TARGET_* (which map to 0, 1, 2). // In other words, if cString > 2 then it's a pointer to a valid place in // memory, and points to a C string. @@ -396,11 +396,11 @@ var LibraryHTML5 = { #if ASSERTIONS warnOnce('Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -sDISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.'); #endif - // The sensible "default" target varies between events, but use window as the default + // The sensible 'default' target varies between events, but use window as the default // since DOM events mostly can default to that. Specific callback registrations // override their own defaults. if (!target) return window; - if (typeof target == "number") target = specialHTMLTargets[target] || UTF8ToString(target); + if (typeof target == 'number') target = specialHTMLTargets[target] || UTF8ToString(target); if (target === '#window') return window; else if (target === '#document') return document; else if (target === '#screen') return screen; @@ -442,17 +442,17 @@ var LibraryHTML5 = { emscripten_set_keypress_callback_on_thread__proxy: 'sync', emscripten_set_keypress_callback_on_thread__deps: ['$registerKeyEventCallback'], emscripten_set_keypress_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerKeyEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_KEYPRESS }}}, "keypress", targetThread), + registerKeyEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_KEYPRESS }}}, 'keypress', targetThread), emscripten_set_keydown_callback_on_thread__proxy: 'sync', emscripten_set_keydown_callback_on_thread__deps: ['$registerKeyEventCallback'], emscripten_set_keydown_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerKeyEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_KEYDOWN }}}, "keydown", targetThread), + registerKeyEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_KEYDOWN }}}, 'keydown', targetThread), emscripten_set_keyup_callback_on_thread__proxy: 'sync', emscripten_set_keyup_callback_on_thread__deps: ['$registerKeyEventCallback'], emscripten_set_keyup_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerKeyEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_KEYUP }}}, "keyup", targetThread), + registerKeyEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_KEYUP }}}, 'keyup', targetThread), // Outline access to function .getBoundingClientRect() since it is a long string. Closure compiler does not outline access to it by itself, but it can inline access if // there is only one caller to this function. @@ -481,9 +481,9 @@ var LibraryHTML5 = { HEAP16[idx*2 + {{{ C_STRUCTS.EmscriptenMouseEvent.button / 2 }}}] = e.button; HEAP16[idx*2 + {{{ C_STRUCTS.EmscriptenMouseEvent.buttons / 2 }}}] = e.buttons; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.movementX / 4 }}}] = e["movementX"]; + HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.movementX / 4 }}}] = e['movementX']; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.movementY / 4 }}}] = e["movementY"]; + HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.movementY / 4 }}}] = e['movementY']; #if !DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR if (Module['canvas']) { @@ -541,52 +541,52 @@ var LibraryHTML5 = { emscripten_set_click_callback_on_thread__proxy: 'sync', emscripten_set_click_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_click_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_CLICK }}}, "click", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_CLICK }}}, 'click', targetThread), emscripten_set_mousedown_callback_on_thread__proxy: 'sync', emscripten_set_mousedown_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mousedown_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEDOWN }}}, "mousedown", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEDOWN }}}, 'mousedown', targetThread), emscripten_set_mouseup_callback_on_thread__proxy: 'sync', emscripten_set_mouseup_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseup_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEUP }}}, "mouseup", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEUP }}}, 'mouseup', targetThread), emscripten_set_dblclick_callback_on_thread__proxy: 'sync', emscripten_set_dblclick_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_dblclick_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_DBLCLICK }}}, "dblclick", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_DBLCLICK }}}, 'dblclick', targetThread), emscripten_set_mousemove_callback_on_thread__proxy: 'sync', emscripten_set_mousemove_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mousemove_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEMOVE }}}, "mousemove", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEMOVE }}}, 'mousemove', targetThread), emscripten_set_mouseenter_callback_on_thread__proxy: 'sync', emscripten_set_mouseenter_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseenter_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEENTER }}}, "mouseenter", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEENTER }}}, 'mouseenter', targetThread), emscripten_set_mouseleave_callback_on_thread__proxy: 'sync', emscripten_set_mouseleave_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseleave_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSELEAVE }}}, "mouseleave", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSELEAVE }}}, 'mouseleave', targetThread), emscripten_set_mouseover_callback_on_thread__proxy: 'sync', emscripten_set_mouseover_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseover_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEOVER }}}, "mouseover", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEOVER }}}, 'mouseover', targetThread), emscripten_set_mouseout_callback_on_thread__proxy: 'sync', emscripten_set_mouseout_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseout_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEOUT }}}, "mouseout", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEOUT }}}, 'mouseout', targetThread), emscripten_set_contextmenu_callback_on_thread__proxy: 'sync', emscripten_set_contextmenu_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_contextmenu_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_CONTEXTMENU }}}, "contextmenu", targetThread), + registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_CONTEXTMENU }}}, 'contextmenu', targetThread), // HTML5 does not really have a polling API for mouse events, so implement one // manually by returning the data from the most recently received event. This @@ -642,7 +642,7 @@ var LibraryHTML5 = { target = findEventTarget(target); if (!target) return {{{ cDefs.EMSCRIPTEN_RESULT_UNKNOWN_TARGET }}}; if (typeof target.onwheel != 'undefined') { - return registerWheelEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_WHEEL }}}, "wheel", targetThread); + return registerWheelEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_WHEEL }}}, 'wheel', targetThread); } else { return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; } @@ -713,12 +713,12 @@ var LibraryHTML5 = { emscripten_set_resize_callback_on_thread__proxy: 'sync', emscripten_set_resize_callback_on_thread__deps: ['$registerUiEventCallback'], emscripten_set_resize_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerUiEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_RESIZE }}}, "resize", targetThread), + registerUiEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_RESIZE }}}, 'resize', targetThread), emscripten_set_scroll_callback_on_thread__proxy: 'sync', emscripten_set_scroll_callback_on_thread__deps: ['$registerUiEventCallback'], emscripten_set_scroll_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerUiEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_SCROLL }}}, "scroll", targetThread), + registerUiEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_SCROLL }}}, 'scroll', targetThread), $registerFocusEventCallback__noleakcheck: true, $registerFocusEventCallback__deps: ['$JSEvents', '$findEventTarget', 'malloc', '$stringToUTF8'], @@ -759,22 +759,22 @@ var LibraryHTML5 = { emscripten_set_blur_callback_on_thread__proxy: 'sync', emscripten_set_blur_callback_on_thread__deps: ['$registerFocusEventCallback'], emscripten_set_blur_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_BLUR }}}, "blur", targetThread), + registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_BLUR }}}, 'blur', targetThread), emscripten_set_focus_callback_on_thread__proxy: 'sync', emscripten_set_focus_callback_on_thread__deps: ['$registerFocusEventCallback'], emscripten_set_focus_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FOCUS }}}, "focus", targetThread), + registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FOCUS }}}, 'focus', targetThread), emscripten_set_focusin_callback_on_thread__proxy: 'sync', emscripten_set_focusin_callback_on_thread__deps: ['$registerFocusEventCallback'], emscripten_set_focusin_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FOCUSIN }}}, "focusin", targetThread), + registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FOCUSIN }}}, 'focusin', targetThread), emscripten_set_focusout_callback_on_thread__proxy: 'sync', emscripten_set_focusout_callback_on_thread__deps: ['$registerFocusEventCallback'], emscripten_set_focusout_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FOCUSOUT }}}, "focusout", targetThread), + registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FOCUSOUT }}}, 'focusout', targetThread), $fillDeviceOrientationEventData: (eventStruct, e, target) => { {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenDeviceOrientationEvent.alpha, 'e.alpha', 'double') }}}; @@ -818,7 +818,7 @@ var LibraryHTML5 = { emscripten_set_deviceorientation_callback_on_thread__proxy: 'sync', emscripten_set_deviceorientation_callback_on_thread__deps: ['$registerDeviceOrientationEventCallback'], emscripten_set_deviceorientation_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => { - return registerDeviceOrientationEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_DEVICEORIENTATION }}}, "deviceorientation", targetThread); + return registerDeviceOrientationEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_DEVICEORIENTATION }}}, 'deviceorientation', targetThread); }, // HTML5 does not really have a polling API for device orientation events, so @@ -885,7 +885,7 @@ var LibraryHTML5 = { emscripten_set_devicemotion_callback_on_thread__proxy: 'sync', emscripten_set_devicemotion_callback_on_thread__deps: ['$registerDeviceMotionEventCallback'], emscripten_set_devicemotion_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => - registerDeviceMotionEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_DEVICEMOTION }}}, "devicemotion", targetThread), + registerDeviceMotionEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_DEVICEMOTION }}}, 'devicemotion', targetThread), // HTML5 does not really have a polling API for device motion events, so // implement one manually by returning the data from the most recently @@ -983,10 +983,10 @@ var LibraryHTML5 = { emscripten_lock_orientation__proxy: 'sync', emscripten_lock_orientation: (allowedOrientations) => { var orientations = []; - if (allowedOrientations & 1) orientations.push("portrait-primary"); - if (allowedOrientations & 2) orientations.push("portrait-secondary"); - if (allowedOrientations & 4) orientations.push("landscape-primary"); - if (allowedOrientations & 8) orientations.push("landscape-secondary"); + if (allowedOrientations & 1) orientations.push('portrait-primary'); + if (allowedOrientations & 2) orientations.push('portrait-secondary'); + if (allowedOrientations & 4) orientations.push('landscape-primary'); + if (allowedOrientations & 8) orientations.push('landscape-secondary'); var succeeded; if (screen.lockOrientation) { succeeded = screen.lockOrientation(orientations); @@ -1091,10 +1091,10 @@ var LibraryHTML5 = { #if MIN_SAFARI_VERSION != TARGET_NOT_SUPPORTED // As of Safari 13.0.3 on macOS Catalina 10.15.1 still ships with prefixed webkitfullscreenchange. TODO: revisit this check once Safari ships unprefixed version. // TODO: When this block is removed, also change test/test_html5_remove_event_listener.c test expectation on emscripten_set_fullscreenchange_callback(). - registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FULLSCREENCHANGE }}}, "webkitfullscreenchange", targetThread); + registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FULLSCREENCHANGE }}}, 'webkitfullscreenchange', targetThread); #endif - return registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FULLSCREENCHANGE }}}, "fullscreenchange", targetThread); + return registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FULLSCREENCHANGE }}}, 'fullscreenchange', targetThread); }, emscripten_get_fullscreen_status__proxy: 'sync', @@ -1265,7 +1265,7 @@ var LibraryHTML5 = { return restoreOldStyle; }, - // Walks the DOM tree and hides every element by setting "display: none;" except the given element. + // Walks the DOM tree and hides every element by setting 'display: none;' except the given element. // Returns a list of [{node: element, displayState: oldDisplayStyle}] entries to allow restoring previous // visibility states after done. $hideEverythingExceptGivenElement: (onlyVisibleElement) => { @@ -1452,7 +1452,7 @@ var LibraryHTML5 = { var restoreOldStyle = JSEvents_resizeCanvasForFullscreen(target, strategy); document.documentElement.style.overflow = 'hidden'; // Firefox, Chrome - document.body.scroll = "no"; // IE11 + document.body.scroll = 'no'; // IE11 document.body.style.margin = '0px'; // Override default document margin area on all browsers. var hiddenElements = hideEverythingExceptGivenElement(target); @@ -1573,7 +1573,7 @@ var LibraryHTML5 = { target = target ? findEventTarget(target) : specialHTMLTargets[{{{ cDefs.EMSCRIPTEN_EVENT_TARGET_DOCUMENT }}}]; // Pointer lock change events need to be captured from 'document' by default instead of 'window' #endif if (!target) return {{{ cDefs.EMSCRIPTEN_RESULT_UNKNOWN_TARGET }}}; - return registerPointerlockChangeEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_POINTERLOCKCHANGE }}}, "pointerlockchange", targetThread); + return registerPointerlockChangeEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_POINTERLOCKCHANGE }}}, 'pointerlockchange', targetThread); }, $registerPointerlockErrorEventCallback__deps: ['$JSEvents'], @@ -1620,7 +1620,7 @@ var LibraryHTML5 = { #endif if (!target) return {{{ cDefs.EMSCRIPTEN_RESULT_UNKNOWN_TARGET }}}; - return registerPointerlockErrorEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_POINTERLOCKERROR }}}, "pointerlockerror", targetThread); + return registerPointerlockErrorEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_POINTERLOCKERROR }}}, 'pointerlockerror', targetThread); }, emscripten_get_pointerlock_status__proxy: 'sync', @@ -1713,7 +1713,7 @@ var LibraryHTML5 = { }, $fillVisibilityChangeEventData: (eventStruct) => { - var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; + var visibilityStates = [ 'hidden', 'visible', 'prerender', 'unloaded' ]; var visibilityState = visibilityStates.indexOf(document.visibilityState); // Assigning a boolean to HEAP32 with expected type coercion. @@ -1762,7 +1762,7 @@ var LibraryHTML5 = { return {{{ cDefs.EMSCRIPTEN_RESULT_UNKNOWN_TARGET }}}; } #endif - return registerVisibilityChangeEventCallback(specialHTMLTargets[{{{ cDefs.EMSCRIPTEN_EVENT_TARGET_DOCUMENT }}}], userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_VISIBILITYCHANGE }}}, "visibilitychange", targetThread); + return registerVisibilityChangeEventCallback(specialHTMLTargets[{{{ cDefs.EMSCRIPTEN_EVENT_TARGET_DOCUMENT }}}], userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_VISIBILITYCHANGE }}}, 'visibilitychange', targetThread); }, emscripten_get_visibility_status__proxy: 'sync', @@ -1874,22 +1874,22 @@ var LibraryHTML5 = { emscripten_set_touchstart_callback_on_thread__proxy: 'sync', emscripten_set_touchstart_callback_on_thread__deps: ['$registerTouchEventCallback'], emscripten_set_touchstart_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHSTART }}}, "touchstart", targetThread), + registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHSTART }}}, 'touchstart', targetThread), emscripten_set_touchend_callback_on_thread__proxy: 'sync', emscripten_set_touchend_callback_on_thread__deps: ['$registerTouchEventCallback'], emscripten_set_touchend_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHEND }}}, "touchend", targetThread), + registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHEND }}}, 'touchend', targetThread), emscripten_set_touchmove_callback_on_thread__proxy: 'sync', emscripten_set_touchmove_callback_on_thread__deps: ['$registerTouchEventCallback'], emscripten_set_touchmove_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHMOVE }}}, "touchmove", targetThread), + registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHMOVE }}}, 'touchmove', targetThread), emscripten_set_touchcancel_callback_on_thread__proxy: 'sync', emscripten_set_touchcancel_callback_on_thread__deps: ['$registerTouchEventCallback'], emscripten_set_touchcancel_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => - registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHCANCEL }}}, "touchcancel", targetThread), + registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHCANCEL }}}, 'touchcancel', targetThread), $fillGamepadEventData__deps: ['$stringToUTF8'], $fillGamepadEventData: (eventStruct, e) => { @@ -1932,7 +1932,7 @@ var LibraryHTML5 = { var gamepadEventHandlerFunc = (e) => { var gamepadEvent = JSEvents.gamepadEvent; - fillGamepadEventData(gamepadEvent, e["gamepad"]); + fillGamepadEventData(gamepadEvent, e['gamepad']); #if PTHREADS if (targetThread) __emscripten_run_callback_on_thread(targetThread, callbackfunc, eventTypeId, gamepadEvent, eventSize, userData); @@ -1960,14 +1960,14 @@ var LibraryHTML5 = { emscripten_set_gamepadconnected_callback_on_thread__deps: ['$registerGamepadEventCallback', 'emscripten_sample_gamepad_data'], emscripten_set_gamepadconnected_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => { if (_emscripten_sample_gamepad_data()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; - return registerGamepadEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_GAMEPADCONNECTED }}}, "gamepadconnected", targetThread); + return registerGamepadEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_GAMEPADCONNECTED }}}, 'gamepadconnected', targetThread); }, emscripten_set_gamepaddisconnected_callback_on_thread__proxy: 'sync', emscripten_set_gamepaddisconnected_callback_on_thread__deps: ['$registerGamepadEventCallback', 'emscripten_sample_gamepad_data'], emscripten_set_gamepaddisconnected_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => { if (_emscripten_sample_gamepad_data()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; - return registerGamepadEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_GAMEPADDISCONNECTED }}}, "gamepaddisconnected", targetThread); + return registerGamepadEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_GAMEPADDISCONNECTED }}}, 'gamepaddisconnected', targetThread); }, emscripten_sample_gamepad_data__docs: '/** @suppress {checkTypes} */', // We assign null to navigator.getGamepads, which Closure would like to complain about. @@ -2051,7 +2051,7 @@ var LibraryHTML5 = { // beforeunload callback can only be registered on the main browser thread, because the page will go away immediately after returning from the handler, // and there is no time to start proxying it anywhere. if (targetThread !== {{{ cDefs.EM_CALLBACK_THREAD_CONTEXT_MAIN_RUNTIME_THREAD }}}) return {{{ cDefs.EMSCRIPTEN_RESULT_INVALID_PARAM }}}; - return registerBeforeUnloadEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, true, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_BEFOREUNLOAD }}}, "beforeunload"); + return registerBeforeUnloadEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, true, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_BEFOREUNLOAD }}}, 'beforeunload'); }, $fillBatteryEventData: (eventStruct, battery) => { @@ -2101,7 +2101,7 @@ var LibraryHTML5 = { emscripten_set_batterychargingchange_callback_on_thread: (userData, callbackfunc, targetThread) => { if (!hasBatteryAPI()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; navigator.getBattery().then((b) => { - registerBatteryEventCallback(b, userData, true, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_BATTERYCHARGINGCHANGE }}}, "chargingchange", targetThread); + registerBatteryEventCallback(b, userData, true, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_BATTERYCHARGINGCHANGE }}}, 'chargingchange', targetThread); }); }, @@ -2110,7 +2110,7 @@ var LibraryHTML5 = { emscripten_set_batterylevelchange_callback_on_thread: (userData, callbackfunc, targetThread) => { if (!hasBatteryAPI()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; navigator.getBattery().then((b) => { - registerBatteryEventCallback(b, userData, true, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_BATTERYLEVELCHANGE }}}, "levelchange", targetThread); + registerBatteryEventCallback(b, userData, true, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_BATTERYLEVELCHANGE }}}, 'levelchange', targetThread); }); }, @@ -2334,8 +2334,8 @@ var LibraryHTML5 = { #endif if (!target) return {{{ cDefs.EMSCRIPTEN_RESULT_UNKNOWN_TARGET }}}; - target.style.width = width + "px"; - target.style.height = height + "px"; + target.style.width = width + 'px'; + target.style.height = height + 'px'; return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, diff --git a/src/lib/libhtml5_webgl.js b/src/lib/libhtml5_webgl.js index f174eea714b63..1282dadfe2fa7 100644 --- a/src/lib/libhtml5_webgl.js +++ b/src/lib/libhtml5_webgl.js @@ -454,14 +454,14 @@ var LibraryHtml5WebGL = { emscripten_set_webglcontextlost_callback_on_thread__proxy: 'sync', emscripten_set_webglcontextlost_callback_on_thread__deps: ['$registerWebGlEventCallback'], emscripten_set_webglcontextlost_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => { - registerWebGlEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_WEBGLCONTEXTLOST }}}, "webglcontextlost", targetThread); + registerWebGlEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_WEBGLCONTEXTLOST }}}, 'webglcontextlost', targetThread); return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, emscripten_set_webglcontextrestored_callback_on_thread__proxy: 'sync', emscripten_set_webglcontextrestored_callback_on_thread__deps: ['$registerWebGlEventCallback'], emscripten_set_webglcontextrestored_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => { - registerWebGlEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_WEBGLCONTEXTRESTORED }}}, "webglcontextrestored", targetThread); + registerWebGlEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_WEBGLCONTEXTRESTORED }}}, 'webglcontextrestored', targetThread); return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, diff --git a/src/lib/libicasefs.js b/src/lib/libicasefs.js index d15cfcc8bc114..f765bd5a72437 100644 --- a/src/lib/libicasefs.js +++ b/src/lib/libicasefs.js @@ -8,8 +8,8 @@ addToLibrary({ $ICASEFS__deps: ['wasmfs_create_icase_backend'], $ICASEFS: { createBackend(opts) { - if (typeof opts.backend === "undefined") { - throw new Error("Underlying backend is not valid."); + if (typeof opts.backend === 'undefined') { + throw new Error('Underlying backend is not valid.'); } var underlyingBackend = opts.backend.createBackend(opts); return _wasmfs_create_icase_backend(underlyingBackend); @@ -18,5 +18,5 @@ addToLibrary({ }); if (!WASMFS) { - error("using -licasefs.js requires using WasmFS (-sWASMFS)"); + error('using -licasefs.js requires using WasmFS (-sWASMFS)'); } diff --git a/src/lib/libidbfs.js b/src/lib/libidbfs.js index d4ecdbccf928b..ac51fe7bc0a83 100644 --- a/src/lib/libidbfs.js +++ b/src/lib/libidbfs.js @@ -147,7 +147,7 @@ addToLibrary({ return callback(e); } if (!req) { - return callback("Unable to connect to IndexedDB"); + return callback('Unable to connect to IndexedDB'); } req.onupgradeneeded = (e) => { var db = /** @type {IDBDatabase} */ (e.target.result); @@ -406,5 +406,5 @@ addToLibrary({ }); if (WASMFS) { - error("using -lidbfs is not currently supported in WasmFS."); + error('using -lidbfs is not currently supported in WasmFS.'); } diff --git a/src/lib/libint53.js b/src/lib/libint53.js index 40aca59384daa..9c366711a9cc8 100644 --- a/src/lib/libint53.js +++ b/src/lib/libint53.js @@ -14,7 +14,7 @@ addToLibrary({ #endif // Writes the given JavaScript Number to the WebAssembly heap as a 64-bit integer variable. // If the given number is not in the range [-2^53, 2^53] (inclusive), then an unexpectedly - // rounded or incorrect number can be written to the heap. ("garbage in, garbage out") + // rounded or incorrect number can be written to the heap. ('garbage in, garbage out') // Note that unlike the most other function variants in this library, there is no separate // function $writeI53ToU64(): the implementation would be identical, and it is up to the // C/C++ side code to interpret the resulting number as signed or unsigned as is desirable. diff --git a/src/lib/libjsfilefs.js b/src/lib/libjsfilefs.js index 7b5f05254230f..fb9a18528612a 100644 --- a/src/lib/libjsfilefs.js +++ b/src/lib/libjsfilefs.js @@ -14,5 +14,5 @@ addToLibrary({ }); if (!WASMFS) { - error("using -ljsfile.js requires using WasmFS (-sWASMFS)"); + error('using -ljsfile.js requires using WasmFS (-sWASMFS)'); } diff --git a/src/lib/liblegacy.js b/src/lib/liblegacy.js index f13a131512587..f8042086250fb 100644 --- a/src/lib/liblegacy.js +++ b/src/lib/liblegacy.js @@ -10,7 +10,7 @@ * * Any usage of symbols in this file will result in a `-Wdeprecated` warning. * - * Symbol in this file should be removed after "enough time" has passed such + * Symbol in this file should be removed after 'enough time' has passed such * that all external users have been able to transition away. */ diff --git a/src/lib/libmemfs.js b/src/lib/libmemfs.js index cfa5b56be7e00..4540d3b4b98d2 100644 --- a/src/lib/libmemfs.js +++ b/src/lib/libmemfs.js @@ -163,7 +163,7 @@ addToLibrary({ return attr; }, setattr(node, attr) { - for (const key of ["mode", "atime", "mtime", "ctime"]) { + for (const key of ['mode', 'atime', 'mtime', 'ctime']) { if (attr[key] != null) { node[key] = attr[key]; } diff --git a/src/lib/libnodefs.js b/src/lib/libnodefs.js index 68301bcf73496..41f237c2b438b 100644 --- a/src/lib/libnodefs.js +++ b/src/lib/libnodefs.js @@ -19,23 +19,23 @@ addToLibrary({ isWindows: false, staticInit() { NODEFS.isWindows = !!process.platform.match(/^win/); - var flags = process.binding("constants")["fs"]; + var flags = process.binding('constants')['fs']; NODEFS.flagsForNodeMap = { - "{{{ cDefs.O_APPEND }}}": flags["O_APPEND"], - "{{{ cDefs.O_CREAT }}}": flags["O_CREAT"], - "{{{ cDefs.O_EXCL }}}": flags["O_EXCL"], - "{{{ cDefs.O_NOCTTY }}}": flags["O_NOCTTY"], - "{{{ cDefs.O_RDONLY }}}": flags["O_RDONLY"], - "{{{ cDefs.O_RDWR }}}": flags["O_RDWR"], - "{{{ cDefs.O_DSYNC }}}": flags["O_SYNC"], - "{{{ cDefs.O_TRUNC }}}": flags["O_TRUNC"], - "{{{ cDefs.O_WRONLY }}}": flags["O_WRONLY"], - "{{{ cDefs.O_NOFOLLOW }}}": flags["O_NOFOLLOW"], + '{{{ cDefs.O_APPEND }}}': flags['O_APPEND'], + '{{{ cDefs.O_CREAT }}}': flags['O_CREAT'], + '{{{ cDefs.O_EXCL }}}': flags['O_EXCL'], + '{{{ cDefs.O_NOCTTY }}}': flags['O_NOCTTY'], + '{{{ cDefs.O_RDONLY }}}': flags['O_RDONLY'], + '{{{ cDefs.O_RDWR }}}': flags['O_RDWR'], + '{{{ cDefs.O_DSYNC }}}': flags['O_SYNC'], + '{{{ cDefs.O_TRUNC }}}': flags['O_TRUNC'], + '{{{ cDefs.O_WRONLY }}}': flags['O_WRONLY'], + '{{{ cDefs.O_NOFOLLOW }}}': flags['O_NOFOLLOW'], }; #if ASSERTIONS // The 0 define must match on both sides, as otherwise we would not // know to add it. - assert(NODEFS.flagsForNodeMap["0"] === 0); + assert(NODEFS.flagsForNodeMap['0'] === 0); #endif }, convertNodeCode(e) { @@ -164,7 +164,7 @@ addToLibrary({ // update the common node structure mode as well node.mode = attr.mode; } - if (typeof (attr.atime ?? attr.mtime) === "number") { + if (typeof (attr.atime ?? attr.mtime) === 'number') { // Unfortunately, we have to stat the current value if we don't want // to change it. On top of that, since the times don't round trip // this will only keep the value nearly unchanged not exactly diff --git a/src/lib/libnoderawfs.js b/src/lib/libnoderawfs.js index ecb4a1704eac2..4753e85572b88 100644 --- a/src/lib/libnoderawfs.js +++ b/src/lib/libnoderawfs.js @@ -8,7 +8,7 @@ addToLibrary({ $NODERAWFS__deps: ['$ERRNO_CODES', '$FS', '$NODEFS', '$mmapAlloc', '$FS_modeStringToFlags', '$NODERAWFS_stream_funcs'], $NODERAWFS__postset: ` if (!ENVIRONMENT_IS_NODE) { - throw new Error("NODERAWFS is currently only supported on Node.js environment.") + throw new Error('NODERAWFS is currently only supported on Node.js environment.') } var nodeTTY = require('node:tty'); function _wrapNodeError(func) { diff --git a/src/lib/libopfs.js b/src/lib/libopfs.js index c84938a64ee7d..ada924fa63fb7 100644 --- a/src/lib/libopfs.js +++ b/src/lib/libopfs.js @@ -14,5 +14,5 @@ addToLibrary({ }); if (!WASMFS) { - error("using -lopfs.js requires using WasmFS (-sWASMFS)"); + error('using -lopfs.js requires using WasmFS (-sWASMFS)'); } diff --git a/src/lib/libproxyfs.js b/src/lib/libproxyfs.js index 6a2a9d35efe49..5e78d6105819c 100644 --- a/src/lib/libproxyfs.js +++ b/src/lib/libproxyfs.js @@ -220,5 +220,5 @@ addToLibrary({ }); if (WASMFS) { - error("using -lproxyfs is not currently supported in WasmFS."); + error('using -lproxyfs is not currently supported in WasmFS.'); } diff --git a/src/lib/libpthread.js b/src/lib/libpthread.js index 6aeb5c409b185..96257fd6e9592 100644 --- a/src/lib/libpthread.js +++ b/src/lib/libpthread.js @@ -158,20 +158,20 @@ var LibraryPThread = { #if PTHREADS_PROFILING getThreadName(pthreadPtr) { var profilerBlock = {{{ makeGetValue('pthreadPtr', C_STRUCTS.pthread.profilerBlock, '*') }}}; - if (!profilerBlock) return ""; + if (!profilerBlock) return ''; return UTF8ToString(profilerBlock + {{{ C_STRUCTS.thread_profiler_block.name }}}); }, threadStatusToString(threadStatus) { switch (threadStatus) { - case 0: return "not yet started"; - case 1: return "running"; - case 2: return "sleeping"; - case 3: return "waiting for a futex"; - case 4: return "waiting for a mutex"; - case 5: return "waiting for a proxied operation"; - case 6: return "finished execution"; - default: return "unknown (corrupt?!)"; + case 0: return 'not yet started'; + case 1: return 'running'; + case 2: return 'sleeping'; + case 3: return 'waiting for a futex'; + case 4: return 'waiting for a mutex'; + case 5: return 'waiting for a proxied operation'; + case 6: return 'finished execution'; + default: return 'unknown (corrupt?!)'; } }, @@ -794,7 +794,7 @@ var LibraryPThread = { return {{{ cDefs.EAGAIN }}}; } #if PTHREADS_DEBUG - dbg("createThread: " + ptrToString(pthread_ptr)); + dbg('createThread: ' + ptrToString(pthread_ptr)); #endif // List of JS objects that will transfer ownership to the Worker hosting the thread @@ -1091,7 +1091,7 @@ var LibraryPThread = { #if MEMORY64 // In memory64 mode some proxied functions return bigint/pointer but // our return type is i53/double. - if (typeof rtn == "bigint") { + if (typeof rtn == 'bigint') { rtn = bigintToI53Checked(rtn); } #endif @@ -1099,7 +1099,7 @@ var LibraryPThread = { // Proxied functions can return any type except bigint. All other types // coerce to f64/double (the return type of this function in C) but not // bigint. - assert(typeof rtn != "bigint"); + assert(typeof rtn != 'bigint'); #endif return rtn; }, @@ -1229,7 +1229,7 @@ var LibraryPThread = { $dlsyncThreadsAsync: async () => { const caller = PThread.currentProxiedOperationCallerThread; #if PTHREADS_DEBUG - dbg("dlsyncThreadsAsync caller=" + ptrToString(caller)); + dbg('dlsyncThreadsAsync caller=' + ptrToString(caller)); #endif #if ASSERTIONS assert(!ENVIRONMENT_IS_PTHREAD, 'dlsyncThreadsAsync() should only be called from the main thread'); diff --git a/src/lib/libsdl.js b/src/lib/libsdl.js index f3502287a617c..100cad8291a01 100644 --- a/src/lib/libsdl.js +++ b/src/lib/libsdl.js @@ -1141,7 +1141,7 @@ var LibrarySDL = { audio.paused = false; if (!webAudio.decodedBuffer) { if (webAudio.onDecodeComplete === undefined) { - abort("Cannot play back audio object that was not loaded"); + abort('Cannot play back audio object that was not loaded'); } webAudio.onDecodeComplete.push(() => { if (!audio.paused) SDL.playWebAudio(audio); }); return; @@ -1155,7 +1155,7 @@ var LibrarySDL = { // avoid Chrome bug // If posz = 0, the sound will come from only the right. // By posz = -0.5 (slightly ahead), the sound will come from right and left correctly. - audio.webAudioPannerNode["setPosition"](0, 0, -.5); + audio.webAudioPannerNode['setPosition'](0, 0, -.5); audio.webAudioPannerNode['panningModel'] = 'equalpower'; // Add an intermediate gain node to control volume. @@ -1384,15 +1384,15 @@ var LibrarySDL = { // capture all key events. we just keep down and up, but also capture press to prevent default actions if (!{{{ makeModuleReceiveExpr('doNotCaptureKeyboard', 'false') }}}) { var keyboardListeningElement = {{{ makeModuleReceiveExpr('keyboardListeningElement', 'document') }}}; - keyboardListeningElement.addEventListener("keydown", SDL.receiveEvent); - keyboardListeningElement.addEventListener("keyup", SDL.receiveEvent); - keyboardListeningElement.addEventListener("keypress", SDL.receiveEvent); - window.addEventListener("focus", SDL.receiveEvent); - window.addEventListener("blur", SDL.receiveEvent); - document.addEventListener("visibilitychange", SDL.receiveEvent); + keyboardListeningElement.addEventListener('keydown', SDL.receiveEvent); + keyboardListeningElement.addEventListener('keyup', SDL.receiveEvent); + keyboardListeningElement.addEventListener('keypress', SDL.receiveEvent); + window.addEventListener('focus', SDL.receiveEvent); + window.addEventListener('blur', SDL.receiveEvent); + document.addEventListener('visibilitychange', SDL.receiveEvent); } - window.addEventListener("unload", SDL.receiveEvent); + window.addEventListener('unload', SDL.receiveEvent); SDL.keyboardState = _calloc(0x10000, 1); // Our SDL needs 512, but 64K is safe for older SDLs // Initialize this structure carefully for closure SDL.DOMEventToSDLEvent['keydown'] = {{{ cDefs.SDL_KEYDOWN }}}; @@ -1844,7 +1844,7 @@ var LibrarySDL = { SDL_GetError__proxy: 'sync', SDL_GetError__deps: ['$stringToNewUTF8'], SDL_GetError: () => { - SDL.errorMessage ||= stringToNewUTF8("unknown SDL-emscripten error"); + SDL.errorMessage ||= stringToNewUTF8('unknown SDL-emscripten error'); return SDL.errorMessage; }, @@ -1893,7 +1893,7 @@ var LibrarySDL = { var ret = SDL.makeSurface(oldData.width, oldData.height, oldData.flags, false, 'copy:' + oldData.source); var newData = SDL.surfaces[ret]; - newData.ctx.globalCompositeOperation = "copy"; + newData.ctx.globalCompositeOperation = 'copy'; newData.ctx.drawImage(oldData.canvas, 0, 0); newData.ctx.globalCompositeOperation = oldData.ctx.globalCompositeOperation; return ret; @@ -2333,7 +2333,7 @@ var LibrarySDL = { } surfData.ctx.putImageData(imageData, 0, 0); } - surfData.ctx.globalCompositeOperation = "source-over"; + surfData.ctx.globalCompositeOperation = 'source-over'; // XXX SDL does not specify that loaded images must have available pixel data, in fact // there are cases where you just want to blit them, so you just need the hardware // accelerated version. However, code everywhere seems to assume that the pixels diff --git a/src/lib/libsockfs.js b/src/lib/libsockfs.js index c7ffe7520e975..df2c52295eae1 100644 --- a/src/lib/libsockfs.js +++ b/src/lib/libsockfs.js @@ -220,13 +220,13 @@ addToLibrary({ if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it. var parts = addr.split('/'); - url = url + parts[0] + ":" + port + "/" + parts.slice(1).join('/'); + url = url + parts[0] + ':' + port + '/' + parts.slice(1).join('/'); } if (subProtocols !== 'null') { // The regex trims the string (removes spaces at the beginning and end), then splits the string by // , into an Array. Whitespace removal is important for Websockify and ws. - subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */); + subProtocols = subProtocols.replace(/^ +| +$/g,'').split(/ *, */); opts = subProtocols; } diff --git a/src/lib/libsockfs_node.js b/src/lib/libsockfs_node.js index b36049e6d45fe..ed35b7a6f6f77 100644 --- a/src/lib/libsockfs_node.js +++ b/src/lib/libsockfs_node.js @@ -326,7 +326,7 @@ var NodeSockFSLibrary = { $nodeSockOps__deps: ['$nodeSockHelpers', '$SOCKFS', '$ERRNO_CODES'], $nodeSockOps__postset: ` if (!ENVIRONMENT_IS_NODE) { - throw new Error("NODERAWSOCKETS is currently only supported on Node.js environment.") + throw new Error('NODERAWSOCKETS is currently only supported on Node.js environment.') }`, $nodeSockOps: { poll(sock) { diff --git a/src/lib/libstack_trace.js b/src/lib/libstack_trace.js index 58682be0e88b2..fa4f8d107a7c3 100644 --- a/src/lib/libstack_trace.js +++ b/src/lib/libstack_trace.js @@ -71,7 +71,7 @@ var LibraryStackTrace = { if ((flags & {{{ cDefs.EM_LOG_C_STACK | cDefs.EM_LOG_JS_STACK }}})) { if (flags & {{{ cDefs.EM_LOG_NO_PATHS }}}) { - file = file.substring(file.replace(/\\/g, "/").lastIndexOf('/')+1); + file = file.substring(file.replace(/\\/g, '/').lastIndexOf('/')+1); } callstack += ` at ${symbolName} (${file}:${lineno}:${column})\n`; } diff --git a/src/lib/libstrings.js b/src/lib/libstrings.js index 357b06fb099ba..6fa8b74d30873 100644 --- a/src/lib/libstrings.js +++ b/src/lib/libstrings.js @@ -13,9 +13,9 @@ addToLibrary({ // so we cannot try to unconditionally initialize it in that build mode. #if TEXTDECODER == 2 && !AUDIO_WORKLET // TextDecoder constructor defaults to UTF-8 - $UTF8Decoder: "new TextDecoder()", + $UTF8Decoder: 'new TextDecoder()', #else - $UTF8Decoder: "globalThis.TextDecoder && new TextDecoder()", + $UTF8Decoder: 'globalThis.TextDecoder && new TextDecoder()', #endif $findStringEnd__docs: ` diff --git a/src/lib/libtime.js b/src/lib/libtime.js index a3e6fe23de950..d3870f861e9c5 100644 --- a/src/lib/libtime.js +++ b/src/lib/libtime.js @@ -4,7 +4,7 @@ * SPDX-License-Identifier: MIT */ -assert(!STANDALONE_WASM, "library_time.js should not be included in standalone mode"); +assert(!STANDALONE_WASM, 'library_time.js should not be included in standalone mode'); addToLibrary({ _mktime_js__i53abi: true, @@ -139,15 +139,15 @@ addToLibrary({ tm_year: {{{ makeGetValue('tmPtr', C_STRUCTS.tm.tm_year, 'i32') }}}, tm_wday: {{{ makeGetValue('tmPtr', C_STRUCTS.tm.tm_wday, 'i32') }}} }; - var days = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ]; - var months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; + var days = [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ]; + var months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]; var s = days[date.tm_wday] + ' ' + months[date.tm_mon] + (date.tm_mday < 10 ? ' ' : ' ') + date.tm_mday + (date.tm_hour < 10 ? ' 0' : ' ') + date.tm_hour + (date.tm_min < 10 ? ':0' : ':') + date.tm_min + (date.tm_sec < 10 ? ':0' : ':') + date.tm_sec + - ' ' + (1900 + date.tm_year) + "\n"; + ' ' + (1900 + date.tm_year) + '\n'; // asctime_r is specced to behave in an undefined manner if the algorithm would attempt // to write out more than 26 bytes (including the null terminator). @@ -191,11 +191,11 @@ addToLibrary({ var extractZone = (timezoneOffset) => { // Why inverse sign? // Read here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset - var sign = timezoneOffset >= 0 ? "-" : "+"; + var sign = timezoneOffset >= 0 ? '-' : '+'; var absOffset = Math.abs(timezoneOffset) - var hours = String(Math.floor(absOffset / 60)).padStart(2, "0"); - var minutes = String(absOffset % 60).padStart(2, "0"); + var hours = String(Math.floor(absOffset / 60)).padStart(2, '0'); + var minutes = String(absOffset % 60).padStart(2, '0'); return `UTC${sign}${hours}${minutes}`; } @@ -343,7 +343,7 @@ addToLibrary({ /\s+/g,'\\s*' ); - var matches = new RegExp('^'+pattern_out, "i").exec(UTF8ToString(buf)) + var matches = new RegExp('^'+pattern_out, 'i').exec(UTF8ToString(buf)) function initDate() { function fixup(value, min, max) { diff --git a/src/lib/libtrace.js b/src/lib/libtrace.js index d6d7254b655ad..e656eddb4b49c 100644 --- a/src/lib/libtrace.js +++ b/src/lib/libtrace.js @@ -186,7 +186,7 @@ var LibraryTracing = { if (EmscriptenTrace.postEnabled) { var now = EmscriptenTrace.now(); EmscriptenTrace.post([EmscriptenTrace.EVENT_LOG_MESSAGE, now, - "MARK", message]); + 'MARK', message]); } if (EmscriptenTrace.googleWTFEnabled) { window['wtf'].trace.mark(message); @@ -197,7 +197,7 @@ var LibraryTracing = { if (EmscriptenTrace.postEnabled) { var now = EmscriptenTrace.now(); EmscriptenTrace.post([EmscriptenTrace.EVENT_LOG_MESSAGE, now, - "MARK", UTF8ToString(message)]); + 'MARK', UTF8ToString(message)]); } if (EmscriptenTrace.googleWTFEnabled) { window['wtf'].trace.mark(UTF8ToString(message)); diff --git a/src/lib/libwasi.js b/src/lib/libwasi.js index f95c513d0eab3..a7c06fcc113cb 100644 --- a/src/lib/libwasi.js +++ b/src/lib/libwasi.js @@ -276,8 +276,8 @@ var WasiLibrary = { #if hasExportedSymbol('fflush') _fflush(0); #endif - if (printCharBuffers[1].length) printChar(1, {{{ charCode("\n") }}}); - if (printCharBuffers[2].length) printChar(2, {{{ charCode("\n") }}}); + if (printCharBuffers[1].length) printChar(1, {{{ charCode('\n') }}}); + if (printCharBuffers[2].length) printChar(2, {{{ charCode('\n') }}}); }, fd_write__deps: ['$flush_NO_FILESYSTEM', '$printChar'], fd_write__postset: () => addAtExit('flush_NO_FILESYSTEM()'), @@ -427,7 +427,7 @@ var WasiLibrary = { // preopen maps open file descriptors to pathname. // In emscripten we already have a VFS layer so (for now) we expose the entire // VFS to the wasi API. - $preopens: "{3: '/'}", + $preopens: {3: '/'}, path_open__sig: 'iiiiiiiiii', path_open__deps: ['$wasiRightsToMuslOFlags', '$wasiOFlagsToMuslOFlags', '$preopens'], diff --git a/src/lib/libwasm_worker.js b/src/lib/libwasm_worker.js index 7c441d2593be6..d4e8e06231078 100644 --- a/src/lib/libwasm_worker.js +++ b/src/lib/libwasm_worker.js @@ -26,7 +26,7 @@ // In pthread builds this gets defined in libpthread.js const CMD_UNCAUGHT_EXN = 8; #endif - const workerSupportsFutexWait = () => AUDIO_WORKLET ? "!ENVIRONMENT_IS_AUDIO_WORKLET" : '1'; + const workerSupportsFutexWait = () => AUDIO_WORKLET ? '!ENVIRONMENT_IS_AUDIO_WORKLET' : '1'; const wasmWorkerJs = ` #if MINIMAL_RUNTIME #if ENVIRONMENT_MAY_BE_NODE @@ -108,7 +108,7 @@ addToLibrary({ assert(wwParams.stackSize % {{{ STACK_ALIGN }}} == 0); #endif #if RUNTIME_DEBUG - dbg("wasmWorkerInitializeRuntime wwID:", wwParams.wwID); + dbg('wasmWorkerInitializeRuntime wwID:', wwParams.wwID); #endif #if !MINIMAL_RUNTIME && isSymbolNeeded('$noExitRuntime') @@ -185,7 +185,7 @@ if (ENVIRONMENT_IS_WASM_WORKER #endif ) { _wasmWorkers[0] = globalThis; - addEventListener("message", _wasmWorkerAppendToQueue); + addEventListener('message', _wasmWorkerAppendToQueue); }`, _emscripten_create_wasm_worker: (wwID, stackLowestAddress, stackSize, pthreadPtr) => { #if ASSERTIONS @@ -234,7 +234,7 @@ if (ENVIRONMENT_IS_WASM_WORKER } #endif #if RUNTIME_DEBUG - dbg("done _emscripten_create_wasm_worker", wwID) + dbg('done _emscripten_create_wasm_worker', wwID) #endif return true; }, diff --git a/src/lib/libwasmfs.js b/src/lib/libwasmfs.js index 5a4f29ede10c3..944d495fc440c 100644 --- a/src/lib/libwasmfs.js +++ b/src/lib/libwasmfs.js @@ -251,19 +251,19 @@ addToLibrary({ statBufToObject(statBuf) { // i53/u53 are enough for times and ino in practice. return { - dev: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_dev, "u32") }}}, - mode: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_mode, "u32") }}}, + dev: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_dev, 'u32') }}}, + mode: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_mode, 'u32') }}}, nlink: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_nlink, SIZE_TYPE) }}}, - uid: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_uid, "u32") }}}, - gid: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_gid, "u32") }}}, - rdev: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_rdev, "u32") }}}, - size: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_size, "i53") }}}, - blksize: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_blksize, "i32") }}}, - blocks: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_blocks, "i32") }}}, - atime: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_atim.tv_sec, "i53") }}}, - mtime: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_mtim.tv_sec, "i53") }}}, - ctime: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_ctim.tv_sec, "i53") }}}, - ino: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_ino, "u53") }}} + uid: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_uid, 'u32') }}}, + gid: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_gid, 'u32') }}}, + rdev: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_rdev, 'u32') }}}, + size: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_size, 'i53') }}}, + blksize: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_blksize, 'i32') }}}, + blocks: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_blocks, 'i32') }}}, + atime: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_atim.tv_sec, 'i53') }}}, + mtime: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_mtim.tv_sec, 'i53') }}}, + ctime: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_ctim.tv_sec, 'i53') }}}, + ino: {{{ makeGetValue('statBuf', C_STRUCTS.stat.st_ino, 'u53') }}} } }, stat(path) { @@ -322,7 +322,7 @@ addToLibrary({ var state = __wasmfs_readdir_start(pathBuffer); if (!state) { // TODO: The old FS threw an ErrnoError here. - throw new Error("No such directory"); + throw new Error('No such directory'); } var entry; while (entry = __wasmfs_readdir_get(state)) { @@ -391,7 +391,7 @@ addToLibrary({ createDevice(parent, name, input, output) { if (typeof parent != 'string') { // The old API allowed parents to be objects, which do not exist in WasmFS. - throw new Error("Only string paths are accepted"); + throw new Error('Only string paths are accepted'); } var path = PATH.join2(parent, name); var mode = FS_getMode(!!input, !!output); @@ -440,7 +440,7 @@ addToLibrary({ var deviceBackend = wasmFSDevices[dev]; if (!deviceBackend) { - throw new Error("Invalid device ID."); + throw new Error('Invalid device ID.'); } return FS.handleError(withStackSave(() => ( diff --git a/src/lib/libwasmfs_node.js b/src/lib/libwasmfs_node.js index a3219afa66c1e..82888a9702b7e 100644 --- a/src/lib/libwasmfs_node.js +++ b/src/lib/libwasmfs_node.js @@ -5,7 +5,7 @@ */ var wasmFSNodeLibrary = { - $wasmfsNodeIsWindows: "!!globalThis.process?.platform.match(/^win/)", + $wasmfsNodeIsWindows: '!!globalThis.process?.platform.match(/^win/)', $wasmfsNodeConvertNodeCode__deps: ['$ERRNO_CODES'], $wasmfsNodeConvertNodeCode: (e) => { diff --git a/src/lib/libwasmfs_opfs.js b/src/lib/libwasmfs_opfs.js index dce8399674d94..db918876ea911 100644 --- a/src/lib/libwasmfs_opfs.js +++ b/src/lib/libwasmfs_opfs.js @@ -6,13 +6,13 @@ addToLibrary({ $wasmfsOPFSDirectoryHandles__deps: ['$HandleAllocator'], - $wasmfsOPFSDirectoryHandles: "new HandleAllocator()", + $wasmfsOPFSDirectoryHandles: 'new HandleAllocator()', $wasmfsOPFSFileHandles__deps: ['$HandleAllocator'], - $wasmfsOPFSFileHandles: "new HandleAllocator()", + $wasmfsOPFSFileHandles: 'new HandleAllocator()', $wasmfsOPFSAccessHandles__deps: ['$HandleAllocator'], - $wasmfsOPFSAccessHandles: "new HandleAllocator()", - $wasmfsOPFSBlobs__deps: ["$HandleAllocator"], - $wasmfsOPFSBlobs: "new HandleAllocator()", + $wasmfsOPFSAccessHandles: 'new HandleAllocator()', + $wasmfsOPFSBlobs__deps: ['$HandleAllocator'], + $wasmfsOPFSBlobs: 'new HandleAllocator()', #if !PTHREADS // OPFS will only be used on modern browsers that supports JS classes. @@ -95,10 +95,10 @@ addToLibrary({ try { fileHandle = await parentHandle.getFileHandle(name, {create: create}); } catch (e) { - if (e.name === "NotFoundError") { + if (e.name === 'NotFoundError') { return -{{{ cDefs.EEXIST }}}; } - if (e.name === "TypeMismatchError") { + if (e.name === 'TypeMismatchError') { return -{{{ cDefs.EISDIR }}}; } #if ASSERTIONS @@ -120,10 +120,10 @@ addToLibrary({ childHandle = await parentHandle.getDirectoryHandle(name, {create: create}); } catch (e) { - if (e.name === "NotFoundError") { + if (e.name === 'NotFoundError') { return -{{{ cDefs.EEXIST }}}; } - if (e.name === "TypeMismatchError") { + if (e.name === 'TypeMismatchError') { return -{{{ cDefs.ENOTDIR }}}; } #if ASSERTIONS @@ -167,7 +167,7 @@ addToLibrary({ let [name, child] = entry.value; let sp = stackSave(); let namePtr = stringToUTF8OnStack(name); - let type = child.kind == "file" ? + let type = child.kind == 'file' ? {{{ cDefs['File::DataFileKind'] }}} : {{{ cDefs['File::DirectoryKind'] }}}; __wasmfs_opfs_record_entry(entriesPtr, namePtr, type) @@ -261,7 +261,7 @@ addToLibrary({ accessHandle = await fileHandle.createSyncAccessHandle(); } else { accessHandle = await fileHandle.createSyncAccessHandle( - {mode: "in-place"}); + {mode: 'in-place'}); } #else accessHandle = await wasmfsOPFSCreateAsyncAccessHandle(fileHandle); @@ -269,8 +269,8 @@ addToLibrary({ accessID = wasmfsOPFSAccessHandles.allocate(accessHandle); } catch (e) { // TODO: Presumably only one of these will appear in the final API? - if (e.name === "InvalidStateError" || - e.name === "NoModificationAllowedError") { + if (e.name === 'InvalidStateError' || + e.name === 'NoModificationAllowedError') { accessID = -{{{ cDefs.EACCES }}}; } else { #if ASSERTIONS @@ -293,7 +293,7 @@ addToLibrary({ let blob = await fileHandle.getFile(); blobID = wasmfsOPFSBlobs.allocate(blob); } catch (e) { - if (e.name === "NotAllowedError") { + if (e.name === 'NotAllowedError') { blobID = -{{{ cDefs.EACCES }}}; } else { #if ASSERTIONS @@ -334,7 +334,7 @@ addToLibrary({ try { return {{{ awaitIf(!PTHREADS) }}}accessHandle.read(data, {at: pos}); } catch (e) { - if (e.name == "TypeError") { + if (e.name == 'TypeError') { return -{{{ cDefs.EINVAL }}}; } #if ASSERTIONS @@ -384,7 +384,7 @@ addToLibrary({ try { return {{{ awaitIf(!PTHREADS) }}}accessHandle.write(data, {at: pos}); } catch (e) { - if (e.name == "TypeError") { + if (e.name == 'TypeError') { return -{{{ cDefs.EINVAL }}}; } #if ASSERTIONS diff --git a/src/lib/libwebaudio.js b/src/lib/libwebaudio.js index 3aeae6f676b4e..c325d770266ab 100644 --- a/src/lib/libwebaudio.js +++ b/src/lib/libwebaudio.js @@ -304,7 +304,7 @@ var LibraryWebAudio = { } #elif ASSERTIONS var numAudioParams = {{{ makeGetValue('options', C_STRUCTS.WebAudioWorkletProcessorCreateOptions.numAudioParams, 'i32') }}}; - assert(numAudioParams == 0 && "Rebuild with -sAUDIO_WORKLET_SUPPORT_AUDIO_PARAMS to utilize AudioParams"); + assert(numAudioParams == 0 && 'Rebuild with -sAUDIO_WORKLET_SUPPORT_AUDIO_PARAMS to utilize AudioParams'); #endif #if WEBAUDIO_DEBUG diff --git a/src/lib/libwebgl.js b/src/lib/libwebgl.js index bc6a602734487..c20f871325bc6 100644 --- a/src/lib/libwebgl.js +++ b/src/lib/libwebgl.js @@ -524,14 +524,14 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; // Let's see if we need to enable the standard derivatives extension var type = GLctx.getShaderParameter(GL.shaders[shader], 0x8B4F /* GL_SHADER_TYPE */); if (type == 0x8B30 /* GL_FRAGMENT_SHADER */) { - if (GLEmulation.findToken(source, "dFdx") || - GLEmulation.findToken(source, "dFdy") || - GLEmulation.findToken(source, "fwidth")) { - source = "#extension GL_OES_standard_derivatives : enable\n" + source; - var extension = GLctx.getExtension("OES_standard_derivatives"); + if (GLEmulation.findToken(source, 'dFdx') || + GLEmulation.findToken(source, 'dFdy') || + GLEmulation.findToken(source, 'fwidth')) { + source = '#extension GL_OES_standard_derivatives : enable\n' + source; + var extension = GLctx.getExtension('OES_standard_derivatives'); #if GL_DEBUG if (!extension) { - dbg("Shader attempts to use the standard derivatives extension which is not available."); + dbg('Shader attempts to use the standard derivatives extension which is not available.'); } #endif } @@ -779,14 +779,14 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif #if MIN_WEBGL_VERSION >= 2 - var ctx = canvas.getContext("webgl2", webGLContextAttributes); + var ctx = canvas.getContext('webgl2', webGLContextAttributes); #else var ctx = #if MAX_WEBGL_VERSION >= 2 (webGLContextAttributes.majorVersion > 1) - ? canvas.getContext("webgl2", webGLContextAttributes) : + ? canvas.getContext('webgl2', webGLContextAttributes) : #endif - canvas.getContext("webgl", webGLContextAttributes); + canvas.getContext('webgl', webGLContextAttributes); #endif // MAX_WEBGL_VERSION >= 2 #if expectToReceiveOnModule('preinitializedWebGLContext') @@ -925,9 +925,9 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; gl.attachShader(blitProgram, fs); gl.linkProgram(blitProgram); context.blitProgram = blitProgram; - context.blitPosLoc = gl.getAttribLocation(blitProgram, "pos"); + context.blitPosLoc = gl.getAttribLocation(blitProgram, 'pos'); gl.useProgram(blitProgram); - gl.uniform1i(gl.getUniformLocation(blitProgram, "sampler"), 0); + gl.uniform1i(gl.getUniformLocation(blitProgram, 'sampler'), 0); gl.useProgram(null); if (gl.createVertexArray) { @@ -1232,7 +1232,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; // that's based on core APIs, and exposes only the queryCounterEXT() // entrypoint. if (context.version >= 2) { - GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query_webgl2"); + GLctx.disjointTimerQueryExt = GLctx.getExtension('EXT_disjoint_timer_query_webgl2'); } // However, Firefox exposes the WebGL 1 version on WebGL 2 as well and @@ -1241,7 +1241,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; if (context.version < 2 || !GLctx.disjointTimerQueryExt) #endif { - GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + GLctx.disjointTimerQueryExt = GLctx.getExtension('EXT_disjoint_timer_query'); } for (var ext of getEmscriptenSupportedExtensions(GLctx)) { @@ -1279,7 +1279,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; $webglGetExtensions: () => { var exts = getEmscriptenSupportedExtensions(GLctx); #if GL_EXTENSIONS_IN_PREFIXED_FORMAT - exts = exts.concat(exts.map((e) => "GL_" + e)); + exts = exts.concat(exts.map((e) => 'GL_' + e)); #endif return exts; }, @@ -1445,19 +1445,19 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; if (ret === undefined) { var result = GLctx.getParameter(name_); switch (typeof result) { - case "number": + case 'number': ret = result; break; - case "boolean": + case 'boolean': ret = result ? 1 : 0; break; - case "string": + case 'string': GL.recordError(0x500); // GL_INVALID_ENUM #if GL_ASSERTIONS err(`GL_INVALID_ENUM in glGet${type}v(${name}) on a name which returns a string!`); #endif return; - case "object": + case 'object': if (result === null) { // null is a valid result for some (e.g., which buffer is bound - // perhaps nothing is bound), but otherwise can mean an invalid @@ -2364,7 +2364,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } #if FULL_ES2 if (GL.currentContext.clientBuffers[index].enabled) { - err("glGetVertexAttrib*v on client-side array: not supported, bad data returned"); + err('glGetVertexAttrib*v on client-side array: not supported, bad data returned'); } #endif var data = GLctx.getVertexAttrib(index, pname); @@ -2422,7 +2422,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } #if FULL_ES2 if (GL.currentContext.clientBuffers[index].enabled) { - err("glGetVertexAttribPointer on client-side array: not supported, bad data returned"); + err('glGetVertexAttribPointer on client-side array: not supported, bad data returned'); } #endif {{{ makeSetValue('pointer', '0', 'GLctx.getVertexAttribOffset(index, pname)', 'i32') }}}; @@ -3175,7 +3175,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; // the corresponding vertex shader, we would not know if that needed to // be compiled with or without the patch, so we must patch all shaders. if (source.includes('#version 100')) { - source = source.replace(/#extension GL_OES_standard_derivatives : enable/g, ""); + source = source.replace(/#extension GL_OES_standard_derivatives : enable/g, ''); source = source.replace(/#extension GL_EXT_shader_texture_lod : enable/g, ''); var prelude = ''; if (source.includes('gl_FragColor')) { @@ -3943,7 +3943,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glShaderBinary: (count, shaders, binaryformat, binary, length) => { GL.recordError(0x500/*GL_INVALID_ENUM*/); #if GL_ASSERTIONS - err("GL_INVALID_ENUM in glShaderBinary: WebGL does not support binary shader formats! Calls to glShaderBinary always fail."); + err('GL_INVALID_ENUM in glShaderBinary: WebGL does not support binary shader formats! Calls to glShaderBinary always fail.'); #endif }, @@ -4172,17 +4172,17 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glMapBufferRange__deps: ['$emscriptenWebGLGetBufferBinding', '$emscriptenWebGLValidateMapBufferTarget', 'malloc'], glMapBufferRange: (target, offset, length, access) => { if ((access & (0x1/*GL_MAP_READ_BIT*/ | 0x20/*GL_MAP_UNSYNCHRONIZED_BIT*/)) != 0) { - err("glMapBufferRange access does not support MAP_READ or MAP_UNSYNCHRONIZED"); + err('glMapBufferRange access does not support MAP_READ or MAP_UNSYNCHRONIZED'); return 0; } if ((access & 0x2/*GL_MAP_WRITE_BIT*/) == 0) { - err("glMapBufferRange access must include MAP_WRITE"); + err('glMapBufferRange access must include MAP_WRITE'); return 0; } if ((access & (0x4/*GL_MAP_INVALIDATE_BUFFER_BIT*/ | 0x8/*GL_MAP_INVALIDATE_RANGE_BIT*/)) == 0) { - err("glMapBufferRange access must include INVALIDATE_BUFFER or INVALIDATE_RANGE"); + err('glMapBufferRange access must include INVALIDATE_BUFFER or INVALIDATE_RANGE'); return 0; } @@ -4276,7 +4276,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glPolygonOffsetClampEXT__sig: 'vfff', glPolygonOffsetClampEXT: (factor, units, clamp) => { #if GL_ASSERTIONS - assert(GLctx.extPolygonOffsetClamp, "EXT_polygon_offset_clamp not supported, or not enabled. Before calling glPolygonOffsetClampEXT(), call emscripten_webgl_enable_EXT_polygon_offset_clamp() to enable this extension, and verify that it returns true to indicate support. (alternatively, build with -sGL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS=1 to enable all GL extensions by default)"); + assert(GLctx.extPolygonOffsetClamp, 'EXT_polygon_offset_clamp not supported, or not enabled. Before calling glPolygonOffsetClampEXT(), call emscripten_webgl_enable_EXT_polygon_offset_clamp() to enable this extension, and verify that it returns true to indicate support. (alternatively, build with -sGL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS=1 to enable all GL extensions by default)'); #endif GLctx.extPolygonOffsetClamp['polygonOffsetClampEXT'](factor, units, clamp); }, @@ -4284,7 +4284,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glClipControlEXT__sig: 'vii', glClipControlEXT: (origin, depth) => { #if GL_ASSERTIONS - assert(GLctx.extClipControl, "EXT_clip_control not supported, or not enabled. Before calling glClipControlEXT(), call emscripten_webgl_enable_EXT_clip_control() to enable this extension, and verify that it returns true to indicate support. (alternatively, build with -sGL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS=1 to enable all GL extensions by default)"); + assert(GLctx.extClipControl, 'EXT_clip_control not supported, or not enabled. Before calling glClipControlEXT(), call emscripten_webgl_enable_EXT_clip_control() to enable this extension, and verify that it returns true to indicate support. (alternatively, build with -sGL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS=1 to enable all GL extensions by default)'); #endif GLctx.extClipControl['clipControlEXT'](origin, depth); }, @@ -4292,7 +4292,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glPolygonModeWEBGL__sig: 'vii', glPolygonModeWEBGL: (face, mode) => { #if GL_ASSERTIONS - assert(GLctx.webglPolygonMode, "WEBGL_polygon_mode not supported, or not enabled. Before calling glPolygonModeWEBGL(), call emscripten_webgl_enable_WEBGL_polygon_mode() to enable this extension, and verify that it returns true to indicate support. (alternatively, build with -sGL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS=1 to enable all GL extensions by default)"); + assert(GLctx.webglPolygonMode, 'WEBGL_polygon_mode not supported, or not enabled. Before calling glPolygonModeWEBGL(), call emscripten_webgl_enable_WEBGL_polygon_mode() to enable this extension, and verify that it returns true to indicate support. (alternatively, build with -sGL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS=1 to enable all GL extensions by default)'); #endif GLctx.webglPolygonMode['polygonModeWEBGL'](face, mode); }, @@ -4351,7 +4351,7 @@ function createGLPassthroughFunctions(lib, funcs) { name = cName.slice(0, -1); } cName = 'gl' + cName[0].toUpperCase() + cName.slice(1); - assert(!(cName in lib), "Cannot reimplement the existing function " + cName); + assert(!(cName in lib), 'Cannot reimplement the existing function ' + cName); lib[cName] = eval(stub.replace('NAME', name)); assert(lib[cName + '__sig'] || LibraryManager.library[cName + '__sig'], 'missing sig for ' + cName); } diff --git a/src/lib/libwebgl2.js b/src/lib/libwebgl2.js index bf43956a853e3..0b6ff6b9dc949 100644 --- a/src/lib/libwebgl2.js +++ b/src/lib/libwebgl2.js @@ -901,21 +901,21 @@ var LibraryWebGL2 = { glProgramParameteri: (program, pname, value) => { GL.recordError(0x500/*GL_INVALID_ENUM*/); #if GL_ASSERTIONS - err("GL_INVALID_ENUM in glProgramParameteri: WebGL does not support binary shader formats! Calls to glProgramParameteri always fail. See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.4"); + err('GL_INVALID_ENUM in glProgramParameteri: WebGL does not support binary shader formats! Calls to glProgramParameteri always fail. See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.4'); #endif }, glGetProgramBinary: (program, bufSize, length, binaryFormat, binary) => { GL.recordError(0x502/*GL_INVALID_OPERATION*/); #if GL_ASSERTIONS - err("GL_INVALID_OPERATION in glGetProgramBinary: WebGL does not support binary shader formats! Calls to glGetProgramBinary always fail. See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.4"); + err('GL_INVALID_OPERATION in glGetProgramBinary: WebGL does not support binary shader formats! Calls to glGetProgramBinary always fail. See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.4'); #endif }, glProgramBinary: (program, binaryFormat, binary, length) => { GL.recordError(0x500/*GL_INVALID_ENUM*/); #if GL_ASSERTIONS - err("GL_INVALID_ENUM in glProgramBinary: WebGL does not support binary shader formats! Calls to glProgramBinary always fail. See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.4"); + err('GL_INVALID_ENUM in glProgramBinary: WebGL does not support binary shader formats! Calls to glProgramBinary always fail. See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.4'); #endif }, diff --git a/src/lib/libwebsocket.js b/src/lib/libwebsocket.js index 4920d0bf6adc2..c0f21c59e2b42 100644 --- a/src/lib/libwebsocket.js +++ b/src/lib/libwebsocket.js @@ -6,7 +6,7 @@ var LibraryWebSocket = { $webSockets__deps: ['$HandleAllocator'], - $webSockets: "new HandleAllocator();", + $webSockets: 'new HandleAllocator();', $WS__deps: ['$webSockets', 'malloc'], $WS: { diff --git a/src/lib/libwget.js b/src/lib/libwget.js index aabab8e223393..d69c80159b794 100644 --- a/src/lib/libwget.js +++ b/src/lib/libwget.js @@ -143,9 +143,9 @@ var LibraryWget = { delete wget.wgetRequests[handle]; }; - if (_request == "POST") { + if (_request == 'POST') { // Send the proper header information along with the request - http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); http.send(_param); } else { http.send(null); @@ -183,7 +183,7 @@ var LibraryWget = { // LOAD http.onload = (e) => { - if (http.status >= 200 && http.status < 300 || (http.status === 0 && _url.slice(0, 4).toLowerCase() != "http")) { + if (http.status >= 200 && http.status < 300 || (http.status === 0 && _url.slice(0, 4).toLowerCase() != 'http')) { var byteArray = new Uint8Array(/** @type{ArrayBuffer} */(http.response)); var buffer = _malloc(byteArray.length); HEAPU8.set(byteArray, buffer); @@ -211,9 +211,9 @@ var LibraryWget = { delete wget.wgetRequests[handle]; }; - if (_request == "POST") { + if (_request == 'POST') { // Send the proper header information along with the request - http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); http.send(_param); } else { http.send(null); diff --git a/src/lib/libworkerfs.js b/src/lib/libworkerfs.js index e01aac9f93c03..39007d3121e06 100644 --- a/src/lib/libworkerfs.js +++ b/src/lib/libworkerfs.js @@ -43,13 +43,13 @@ addToLibrary({ return parts[parts.length-1]; } // We also accept FileList here - for (var file of (mount.opts["files"] || [])) { + for (var file of (mount.opts['files'] || [])) { WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); } - for (var obj of (mount.opts["blobs"] || [])) { - WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); + for (var obj of (mount.opts['blobs'] || [])) { + WORKERFS.createNode(ensureParent(obj['name']), base(obj['name']), WORKERFS.FILE_MODE, 0, obj['data']); } - for (var pack of (mount.opts["packages"] || [])) { + for (var pack of (mount.opts['packages'] || [])) { for (var file of pack['metadata'].files) { var name = file.filename.slice(1); // remove initial slash WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end)); @@ -95,7 +95,7 @@ addToLibrary({ }; }, setattr(node, attr) { - for (const key of ["mode", "atime", "mtime", "ctime"]) { + for (const key of ['mode', 'atime', 'mtime', 'ctime']) { if (attr[key] != null) { node[key] = attr[key]; } @@ -157,5 +157,5 @@ addToLibrary({ }); if (WASMFS) { - error("using -lworkerfs is not currently supported in WasmFS."); + error('using -lworkerfs is not currently supported in WasmFS.'); } diff --git a/test/codesize/test_codesize_file_preload.expected.js b/test/codesize/test_codesize_file_preload.expected.js index d6a8f15aea8cb..0fea7ea6cc49d 100644 --- a/test/codesize/test_codesize_file_preload.expected.js +++ b/test/codesize/test_codesize_file_preload.expected.js @@ -2909,7 +2909,7 @@ var FS = { var xhr = new XMLHttpRequest; xhr.open("HEAD", url, false); xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`); var datalength = Number(xhr.getResponseHeader("Content-length")); var header; var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; @@ -2924,14 +2924,14 @@ var FS = { // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. var xhr = new XMLHttpRequest; xhr.open("GET", url, false); - if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", `bytes=${from}-${to}`); // Some hints to the browser that we want binary data. xhr.responseType = "arraybuffer"; if (xhr.overrideMimeType) { xhr.overrideMimeType("text/plain; charset=x-user-defined"); } xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`); if (xhr.response !== undefined) { return new Uint8Array(/** @type{Array} */ (xhr.response || [])); } @@ -3178,7 +3178,7 @@ var handleException = e => { // Certain exception types we do not treat as errors since they are used for // internal control flow. // 1. ExitStatus, which is thrown by exit() - // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // 2. 'unwind', which is thrown by emscripten_unwind_to_js_event_loop() and others // that wish to return to JS event loop. if (e instanceof ExitStatus || e == "unwind") { return EXITSTATUS; diff --git a/test/codesize/test_codesize_file_preload.json b/test/codesize/test_codesize_file_preload.json index bfa787155cd0f..f81e231f27041 100644 --- a/test/codesize/test_codesize_file_preload.json +++ b/test/codesize/test_codesize_file_preload.json @@ -1,10 +1,10 @@ { - "a.out.js": 22300, - "a.out.js.gz": 9289, + "a.out.js": 22303, + "a.out.js.gz": 9284, "a.out.nodebug.wasm": 1666, "a.out.nodebug.wasm.gz": 945, - "total": 23966, - "total_gz": 10234, + "total": 23969, + "total_gz": 10229, "sent": [ "a (fd_write)" ], diff --git a/test/codesize/test_codesize_hello_dylink_all.json b/test/codesize/test_codesize_hello_dylink_all.json index 1dca8f07ac0cb..e81eb3057735e 100644 --- a/test/codesize/test_codesize_hello_dylink_all.json +++ b/test/codesize/test_codesize_hello_dylink_all.json @@ -1,7 +1,7 @@ { - "a.out.js": 269157, + "a.out.js": 269156, "a.out.nodebug.wasm": 588047, - "total": 857204, + "total": 857203, "sent": [ "IMG_Init", "IMG_Load", diff --git a/test/codesize/test_minimal_runtime_code_size_hello_embind.json b/test/codesize/test_minimal_runtime_code_size_hello_embind.json index d3f128deb07a6..375a94b8223d9 100644 --- a/test/codesize/test_minimal_runtime_code_size_hello_embind.json +++ b/test/codesize/test_minimal_runtime_code_size_hello_embind.json @@ -1,10 +1,10 @@ { "a.html": 548, "a.html.gz": 371, - "a.js": 7249, - "a.js.gz": 3325, + "a.js": 7258, + "a.js.gz": 3328, "a.wasm": 7099, "a.wasm.gz": 3246, - "total": 14896, - "total_gz": 6942 + "total": 14905, + "total_gz": 6945 } diff --git a/test/codesize/test_small_js_flags.expected.js b/test/codesize/test_small_js_flags.expected.js index 43b883abf4d98..86e6f49329610 100644 --- a/test/codesize/test_small_js_flags.expected.js +++ b/test/codesize/test_small_js_flags.expected.js @@ -393,7 +393,7 @@ var handleException = e => { // Certain exception types we do not treat as errors since they are used for // internal control flow. // 1. ExitStatus, which is thrown by exit() - // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // 2. 'unwind', which is thrown by emscripten_unwind_to_js_event_loop() and others // that wish to return to JS event loop. if (e instanceof ExitStatus || e == "unwind") { return EXITSTATUS; diff --git a/test/codesize/test_unoptimized_code_size.json b/test/codesize/test_unoptimized_code_size.json index 117fdc26c92d8..2fdf9189bba7d 100644 --- a/test/codesize/test_unoptimized_code_size.json +++ b/test/codesize/test_unoptimized_code_size.json @@ -1,16 +1,16 @@ { "hello_world.js": 56365, - "hello_world.js.gz": 17729, + "hello_world.js.gz": 17726, "hello_world.wasm": 15115, "hello_world.wasm.gz": 7464, "no_asserts.js": 25511, - "no_asserts.js.gz": 8679, + "no_asserts.js.gz": 8677, "no_asserts.wasm": 12229, "no_asserts.wasm.gz": 6004, "strict.js": 53467, - "strict.js.gz": 16713, + "strict.js.gz": 16710, "strict.wasm": 15115, "strict.wasm.gz": 7461, "total": 177802, - "total_gz": 64050 + "total_gz": 64042 }