From e695c61048e67647a5fdefd3ddadffb006f664c5 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Thu, 27 Jun 2024 11:56:24 -0700 Subject: [PATCH 1/2] Use C/C++ bool type to implement EM_BOOL This reduces the size of several structs and results in code size savings in some cases. This change is split of from a larger change I have planned to remove the use of EM_BOOL completely: #22155. --- ChangeLog.md | 2 + src/generated_struct_info32.json | 146 +++++++++++------------ src/generated_struct_info64.json | 146 +++++++++++------------ src/library_html5.js | 34 +++--- src/library_html5_webgl.js | 26 ++-- src/library_websocket.js | 2 +- system/include/emscripten/em_types.h | 4 +- test/code_size/hello_webgl2_wasm.json | 10 +- test/code_size/hello_webgl2_wasm2js.json | 8 +- test/code_size/hello_webgl_wasm.json | 12 +- test/code_size/hello_webgl_wasm2js.json | 8 +- 11 files changed, 201 insertions(+), 197 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 334e19f68920c..f201ef3d70a90 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -20,6 +20,8 @@ See docs/process.md for more on how version tagging works. 3.1.62 (in development) ----------------------- +- The `EM_BOOL` type changed from `int/u32` to `bool/u8`. This changes the + layout and size of some structs in the emscripten API. (#22157) - The `EMSCRIPTEN_FETCH_WAITABLE` flag along with the `emscripten_fetch_wait` API were marked a deprecated. These feature have not functions for several years now. (#22138) diff --git a/src/generated_struct_info32.json b/src/generated_struct_info32.json index 88102d443fa69..e842d718ed7f6 100644 --- a/src/generated_struct_info32.json +++ b/src/generated_struct_info32.json @@ -493,15 +493,15 @@ "nodeName": 0 }, "EmscriptenFullscreenChangeEvent": { - "__size__": 280, - "elementHeight": 268, - "elementWidth": 264, - "fullscreenEnabled": 4, - "id": 136, + "__size__": 276, + "elementHeight": 264, + "elementWidth": 260, + "fullscreenEnabled": 1, + "id": 130, "isFullscreen": 0, - "nodeName": 8, - "screenHeight": 276, - "screenWidth": 272 + "nodeName": 2, + "screenHeight": 272, + "screenWidth": 268 }, "EmscriptenFullscreenStrategy": { "__size__": 24, @@ -513,53 +513,53 @@ "scaleMode": 0 }, "EmscriptenGamepadEvent": { - "__size__": 1432, + "__size__": 1240, "analogButton": 528, "axis": 16, - "connected": 1296, + "connected": 1104, "digitalButton": 1040, - "id": 1304, - "index": 1300, - "mapping": 1368, + "id": 1112, + "index": 1108, + "mapping": 1176, "numAxes": 8, "numButtons": 12, "timestamp": 0 }, "EmscriptenKeyboardEvent": { - "__size__": 176, - "altKey": 20, - "charCode": 32, - "charValue": 108, - "code": 76, + "__size__": 160, + "altKey": 14, + "charCode": 20, + "charValue": 96, + "code": 64, "ctrlKey": 12, - "key": 44, - "keyCode": 36, - "locale": 140, + "key": 32, + "keyCode": 24, + "locale": 128, "location": 8, - "metaKey": 24, - "repeat": 28, - "shiftKey": 16, + "metaKey": 15, + "repeat": 16, + "shiftKey": 13, "timestamp": 0, - "which": 40 + "which": 28 }, "EmscriptenMouseEvent": { - "__size__": 72, - "altKey": 32, - "button": 40, - "buttons": 42, - "canvasX": 60, - "canvasY": 64, + "__size__": 64, + "altKey": 26, + "button": 28, + "buttons": 30, + "canvasX": 48, + "canvasY": 52, "clientX": 16, "clientY": 20, "ctrlKey": 24, - "metaKey": 36, - "movementX": 44, - "movementY": 48, + "metaKey": 27, + "movementX": 32, + "movementY": 36, "screenX": 8, "screenY": 12, - "shiftKey": 28, - "targetX": 52, - "targetY": 56, + "shiftKey": 25, + "targetX": 40, + "targetY": 44, "timestamp": 0 }, "EmscriptenOrientationChangeEvent": { @@ -568,36 +568,36 @@ "orientationIndex": 0 }, "EmscriptenPointerlockChangeEvent": { - "__size__": 260, - "id": 132, + "__size__": 257, + "id": 129, "isActive": 0, - "nodeName": 4 + "nodeName": 1 }, "EmscriptenTouchEvent": { - "__size__": 1696, - "altKey": 20, + "__size__": 1552, + "altKey": 14, "ctrlKey": 12, - "metaKey": 24, + "metaKey": 15, "numTouches": 8, - "shiftKey": 16, + "shiftKey": 13, "timestamp": 0, - "touches": 28 + "touches": 16 }, "EmscriptenTouchPoint": { - "__size__": 52, - "canvasX": 44, - "canvasY": 48, + "__size__": 48, + "canvasX": 40, + "canvasY": 44, "clientX": 12, "clientY": 16, "identifier": 0, "isChanged": 28, - "onTarget": 32, + "onTarget": 29, "pageX": 20, "pageY": 24, "screenX": 4, "screenY": 8, - "targetX": 36, - "targetY": 40 + "targetX": 32, + "targetY": 36 }, "EmscriptenUiEvent": { "__size__": 36, @@ -617,26 +617,26 @@ "visibilityState": 4 }, "EmscriptenWebGLContextAttributes": { - "__size__": 56, + "__size__": 36, "alpha": 0, - "antialias": 12, - "depth": 4, - "enableExtensionsByDefault": 40, - "explicitSwapControl": 44, - "failIfMajorPerformanceCaveat": 28, - "majorVersion": 32, - "minorVersion": 36, - "powerPreference": 24, - "premultipliedAlpha": 16, - "preserveDrawingBuffer": 20, - "proxyContextToMainThread": 48, - "renderViaOffscreenBackBuffer": 52, - "stencil": 8 + "antialias": 3, + "depth": 1, + "enableExtensionsByDefault": 24, + "explicitSwapControl": 25, + "failIfMajorPerformanceCaveat": 12, + "majorVersion": 16, + "minorVersion": 20, + "powerPreference": 8, + "premultipliedAlpha": 4, + "preserveDrawingBuffer": 5, + "proxyContextToMainThread": 28, + "renderViaOffscreenBackBuffer": 32, + "stencil": 2 }, "EmscriptenWebSocketCloseEvent": { - "__size__": 524, - "code": 8, - "reason": 10, + "__size__": 520, + "code": 6, + "reason": 8, "wasClean": 4 }, "EmscriptenWebSocketCreateAttributes": { @@ -650,11 +650,11 @@ "numBytes": 8 }, "EmscriptenWheelEvent": { - "__size__": 104, - "deltaMode": 96, - "deltaX": 72, - "deltaY": 80, - "deltaZ": 88, + "__size__": 96, + "deltaMode": 88, + "deltaX": 64, + "deltaY": 72, + "deltaZ": 80, "mouse": 0 }, "SDL_AudioSpec": { diff --git a/src/generated_struct_info64.json b/src/generated_struct_info64.json index dab20e11f25b2..a82d7e850d9ad 100644 --- a/src/generated_struct_info64.json +++ b/src/generated_struct_info64.json @@ -493,15 +493,15 @@ "nodeName": 0 }, "EmscriptenFullscreenChangeEvent": { - "__size__": 280, - "elementHeight": 268, - "elementWidth": 264, - "fullscreenEnabled": 4, - "id": 136, + "__size__": 276, + "elementHeight": 264, + "elementWidth": 260, + "fullscreenEnabled": 1, + "id": 130, "isFullscreen": 0, - "nodeName": 8, - "screenHeight": 276, - "screenWidth": 272 + "nodeName": 2, + "screenHeight": 272, + "screenWidth": 268 }, "EmscriptenFullscreenStrategy": { "__size__": 40, @@ -513,53 +513,53 @@ "scaleMode": 0 }, "EmscriptenGamepadEvent": { - "__size__": 1432, + "__size__": 1240, "analogButton": 528, "axis": 16, - "connected": 1296, + "connected": 1104, "digitalButton": 1040, - "id": 1304, - "index": 1300, - "mapping": 1368, + "id": 1112, + "index": 1108, + "mapping": 1176, "numAxes": 8, "numButtons": 12, "timestamp": 0 }, "EmscriptenKeyboardEvent": { - "__size__": 176, - "altKey": 20, - "charCode": 32, - "charValue": 108, - "code": 76, + "__size__": 160, + "altKey": 14, + "charCode": 20, + "charValue": 96, + "code": 64, "ctrlKey": 12, - "key": 44, - "keyCode": 36, - "locale": 140, + "key": 32, + "keyCode": 24, + "locale": 128, "location": 8, - "metaKey": 24, - "repeat": 28, - "shiftKey": 16, + "metaKey": 15, + "repeat": 16, + "shiftKey": 13, "timestamp": 0, - "which": 40 + "which": 28 }, "EmscriptenMouseEvent": { - "__size__": 72, - "altKey": 32, - "button": 40, - "buttons": 42, - "canvasX": 60, - "canvasY": 64, + "__size__": 64, + "altKey": 26, + "button": 28, + "buttons": 30, + "canvasX": 48, + "canvasY": 52, "clientX": 16, "clientY": 20, "ctrlKey": 24, - "metaKey": 36, - "movementX": 44, - "movementY": 48, + "metaKey": 27, + "movementX": 32, + "movementY": 36, "screenX": 8, "screenY": 12, - "shiftKey": 28, - "targetX": 52, - "targetY": 56, + "shiftKey": 25, + "targetX": 40, + "targetY": 44, "timestamp": 0 }, "EmscriptenOrientationChangeEvent": { @@ -568,36 +568,36 @@ "orientationIndex": 0 }, "EmscriptenPointerlockChangeEvent": { - "__size__": 260, - "id": 132, + "__size__": 257, + "id": 129, "isActive": 0, - "nodeName": 4 + "nodeName": 1 }, "EmscriptenTouchEvent": { - "__size__": 1696, - "altKey": 20, + "__size__": 1552, + "altKey": 14, "ctrlKey": 12, - "metaKey": 24, + "metaKey": 15, "numTouches": 8, - "shiftKey": 16, + "shiftKey": 13, "timestamp": 0, - "touches": 28 + "touches": 16 }, "EmscriptenTouchPoint": { - "__size__": 52, - "canvasX": 44, - "canvasY": 48, + "__size__": 48, + "canvasX": 40, + "canvasY": 44, "clientX": 12, "clientY": 16, "identifier": 0, "isChanged": 28, - "onTarget": 32, + "onTarget": 29, "pageX": 20, "pageY": 24, "screenX": 4, "screenY": 8, - "targetX": 36, - "targetY": 40 + "targetX": 32, + "targetY": 36 }, "EmscriptenUiEvent": { "__size__": 36, @@ -617,26 +617,26 @@ "visibilityState": 4 }, "EmscriptenWebGLContextAttributes": { - "__size__": 56, + "__size__": 36, "alpha": 0, - "antialias": 12, - "depth": 4, - "enableExtensionsByDefault": 40, - "explicitSwapControl": 44, - "failIfMajorPerformanceCaveat": 28, - "majorVersion": 32, - "minorVersion": 36, - "powerPreference": 24, - "premultipliedAlpha": 16, - "preserveDrawingBuffer": 20, - "proxyContextToMainThread": 48, - "renderViaOffscreenBackBuffer": 52, - "stencil": 8 + "antialias": 3, + "depth": 1, + "enableExtensionsByDefault": 24, + "explicitSwapControl": 25, + "failIfMajorPerformanceCaveat": 12, + "majorVersion": 16, + "minorVersion": 20, + "powerPreference": 8, + "premultipliedAlpha": 4, + "preserveDrawingBuffer": 5, + "proxyContextToMainThread": 28, + "renderViaOffscreenBackBuffer": 32, + "stencil": 2 }, "EmscriptenWebSocketCloseEvent": { - "__size__": 524, - "code": 8, - "reason": 10, + "__size__": 520, + "code": 6, + "reason": 8, "wasClean": 4 }, "EmscriptenWebSocketCreateAttributes": { @@ -650,11 +650,11 @@ "numBytes": 16 }, "EmscriptenWheelEvent": { - "__size__": 104, - "deltaMode": 96, - "deltaX": 72, - "deltaY": 80, - "deltaZ": 88, + "__size__": 96, + "deltaMode": 88, + "deltaX": 64, + "deltaY": 72, + "deltaZ": 80, "mouse": 0 }, "SDL_AudioSpec": { diff --git a/src/library_html5.js b/src/library_html5.js index c94748df8f347..52783861c5fd2 100644 --- a/src/library_html5.js +++ b/src/library_html5.js @@ -277,11 +277,11 @@ var LibraryHTML5 = { var idx ={{{ getHeapOffset('keyEventData', 'i32') }}}; HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.location / 4}}}] = e.location; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.ctrlKey / 4}}}] = e.ctrlKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.shiftKey / 4}}}] = e.shiftKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.altKey / 4}}}] = e.altKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.metaKey / 4}}}] = e.metaKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.repeat / 4}}}] = e.repeat; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.ctrlKey }}}] = e.ctrlKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.shiftKey }}}] = e.shiftKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.altKey }}}] = e.altKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.metaKey }}}] = e.metaKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.repeat }}}] = e.repeat; HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.charCode / 4}}}] = e.charCode; HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.keyCode / 4}}}] = e.keyCode; HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.which / 4}}}] = e.which; @@ -446,10 +446,10 @@ var LibraryHTML5 = { HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.screenY / 4 }}}] = e.screenY; HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.clientX / 4 }}}] = e.clientX; HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.clientY / 4 }}}] = e.clientY; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.ctrlKey / 4 }}}] = e.ctrlKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.shiftKey / 4 }}}] = e.shiftKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.altKey / 4 }}}] = e.altKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.metaKey / 4 }}}] = e.metaKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.ctrlKey }}}] = e.ctrlKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.shiftKey }}}] = e.shiftKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.altKey }}}] = e.altKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.metaKey }}}] = e.metaKey; HEAP16[idx*2 + {{{ C_STRUCTS.EmscriptenMouseEvent.button / 2 }}}] = e.button; HEAP16[idx*2 + {{{ C_STRUCTS.EmscriptenMouseEvent.buttons / 2 }}}] = e.buttons; @@ -1934,10 +1934,10 @@ var LibraryHTML5 = { #endif {{{ makeSetValue('touchEvent', C_STRUCTS.EmscriptenTouchEvent.timestamp, 'e.timeStamp', 'double') }}}; var idx ={{{ getHeapOffset('touchEvent', 'i32') }}};// Pre-shift the ptr to index to HEAP32 to save code size - HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.ctrlKey / 4}}}] = e.ctrlKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.shiftKey / 4}}}] = e.shiftKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.altKey / 4}}}] = e.altKey; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.metaKey / 4}}}] = e.metaKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.ctrlKey }}}] = e.ctrlKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.shiftKey }}}] = e.shiftKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.altKey }}}] = e.altKey; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.metaKey }}}] = e.metaKey; idx += {{{ C_STRUCTS.EmscriptenTouchEvent.touches / 4 }}}; // Advance to the start of the touch array. #if !DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR var canvasRect = Module['canvas'] ? getBoundingClientRect(Module['canvas']) : undefined; @@ -2025,16 +2025,16 @@ var LibraryHTML5 = { } for (var i = 0; i < e.buttons.length; ++i) { if (typeof e.buttons[i] == 'object') { - {{{ makeSetValue('eventStruct+i*4', C_STRUCTS.EmscriptenGamepadEvent.digitalButton, 'e.buttons[i].pressed', 'i32') }}}; + {{{ makeSetValue('eventStruct+i', C_STRUCTS.EmscriptenGamepadEvent.digitalButton, 'e.buttons[i].pressed', 'i8') }}}; } else { #if !SAFE_HEAP // Assigning a boolean to HEAP32, that's ok, but Closure would like to warn about it: /** @suppress {checkTypes} */ #endif - {{{ makeSetValue('eventStruct+i*4', C_STRUCTS.EmscriptenGamepadEvent.digitalButton, 'e.buttons[i] == 1', 'i32') }}}; + {{{ makeSetValue('eventStruct+i', C_STRUCTS.EmscriptenGamepadEvent.digitalButton, 'e.buttons[i] == 1', 'i8') }}}; } } - {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenGamepadEvent.connected, 'e.connected', 'i32') }}}; + {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenGamepadEvent.connected, 'e.connected', 'i8') }}}; {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenGamepadEvent.index, 'e.index', 'i32') }}}; {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenGamepadEvent.numAxes, 'e.axes.length', 'i32') }}}; {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenGamepadEvent.numButtons, 'e.buttons.length', 'i32') }}}; @@ -2177,7 +2177,7 @@ var LibraryHTML5 = { {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenBatteryEvent.chargingTime, 'e.chargingTime', 'double') }}}; {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenBatteryEvent.dischargingTime, 'e.dischargingTime', 'double') }}}; {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenBatteryEvent.level, 'e.level', 'double') }}}; - {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenBatteryEvent.charging, 'e.charging', 'i32') }}}; + {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenBatteryEvent.charging, 'e.charging', 'i8') }}}; }, $battery: () => navigator.battery || navigator.mozBattery || navigator.webkitBattery, diff --git a/src/library_html5_webgl.js b/src/library_html5_webgl.js index be062665cd1e5..58c1bb2368cfc 100644 --- a/src/library_html5_webgl.js +++ b/src/library_html5_webgl.js @@ -62,21 +62,21 @@ var LibraryHtml5WebGL = { var a = {{{ getHeapOffset('attributes', 'i32') }}}; var powerPreference = HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.powerPreference }}}>>2)]; var contextAttributes = { - 'alpha': !!HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.alpha }}}>>2)], - 'depth': !!HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.depth }}}>>2)], - 'stencil': !!HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.stencil }}}>>2)], - 'antialias': !!HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.antialias }}}>>2)], - 'premultipliedAlpha': !!HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.premultipliedAlpha }}}>>2)], - 'preserveDrawingBuffer': !!HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.preserveDrawingBuffer }}}>>2)], + 'alpha': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.alpha }}}], + 'depth': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.depth }}}], + 'stencil': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.stencil }}}], + 'antialias': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.antialias }}}], + 'premultipliedAlpha': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.premultipliedAlpha }}}], + 'preserveDrawingBuffer': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.preserveDrawingBuffer }}}], 'powerPreference': webglPowerPreferences[powerPreference], - 'failIfMajorPerformanceCaveat': !!HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.failIfMajorPerformanceCaveat }}}>>2)], + 'failIfMajorPerformanceCaveat': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.failIfMajorPerformanceCaveat }}}], // The following are not predefined WebGL context attributes in the WebGL specification, so the property names can be minified by Closure. majorVersion: HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.majorVersion }}}>>2)], minorVersion: HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.minorVersion }}}>>2)], - enableExtensionsByDefault: HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.enableExtensionsByDefault }}}>>2)], - explicitSwapControl: HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.explicitSwapControl }}}>>2)], + enableExtensionsByDefault: HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.enableExtensionsByDefault }}}], + explicitSwapControl: HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.explicitSwapControl }}}], proxyContextToMainThread: HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.proxyContextToMainThread }}}>>2)], - renderViaOffscreenBackBuffer: HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.renderViaOffscreenBackBuffer }}}>>2)] + renderViaOffscreenBackBuffer: HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.renderViaOffscreenBackBuffer }}}] }; var canvas = findCanvasEventTarget(target); @@ -100,8 +100,8 @@ var LibraryHtml5WebGL = { #endif // We will be proxying - if OffscreenCanvas is supported, we can proxy a bit more efficiently by avoiding having to create an Offscreen FBO. if (!_emscripten_supports_offscreencanvas()) { - {{{ makeSetValue('attributes', C_STRUCTS.EmscriptenWebGLContextAttributes.renderViaOffscreenBackBuffer, '1', 'i32') }}}; - {{{ makeSetValue('attributes', C_STRUCTS.EmscriptenWebGLContextAttributes.preserveDrawingBuffer, '1', 'i32') }}}; + {{{ makeSetValue('attributes', C_STRUCTS.EmscriptenWebGLContextAttributes.renderViaOffscreenBackBuffer, '1', 'i8') }}}; + {{{ makeSetValue('attributes', C_STRUCTS.EmscriptenWebGLContextAttributes.preserveDrawingBuffer, '1', 'i8') }}}; } return _emscripten_webgl_create_context_proxied(target, attributes); } @@ -279,7 +279,7 @@ var LibraryHtml5WebGL = { {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.enableExtensionsByDefault, 'c.attributes.enableExtensionsByDefault', 'i32') }}}; #endif #if GL_SUPPORT_EXPLICIT_SWAP_CONTROL - {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.explicitSwapControl, 'c.attributes.explicitSwapControl', 'i32') }}}; + {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.explicitSwapControl, 'c.attributes.explicitSwapControl', 'i8') }}}; #endif return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, diff --git a/src/library_websocket.js b/src/library_websocket.js index 9d2cb9bbae316..cf2763f750a10 100644 --- a/src/library_websocket.js +++ b/src/library_websocket.js @@ -294,7 +294,7 @@ var LibraryWebSocket = { var url = UTF8ToString({{{ makeGetValue('createAttributes', 0, '*') }}}); var protocols = {{{ makeGetValue('createAttributes', C_STRUCTS.EmscriptenWebSocketCreateAttributes.protocols, '*') }}} // TODO: Add support for createOnMainThread==false; currently all WebSocket connections are created on the main thread. - // var createOnMainThread = HEAP32[createAttrs+2]; + // var createOnMainThread = HEAP8[createAttributes+2]; var socket = protocols ? new WebSocket(url, UTF8ToString(protocols).split(',')) : new WebSocket(url); // We always marshal received WebSocket data back to Wasm, so enable receiving the data as arraybuffers for easy marshalling. diff --git a/system/include/emscripten/em_types.h b/system/include/emscripten/em_types.h index 7d738beeba70a..ae9aca239a1ae 100644 --- a/system/include/emscripten/em_types.h +++ b/system/include/emscripten/em_types.h @@ -7,6 +7,8 @@ #pragma once +#include + /* Typedefs */ typedef short __attribute__((aligned(1))) emscripten_align1_short; @@ -29,7 +31,7 @@ typedef void (*em_callback_func)(void); typedef void (*em_arg_callback_func)(void*); typedef void (*em_str_callback_func)(const char *); -#define EM_BOOL int +#define EM_BOOL bool #define EM_TRUE 1 #define EM_FALSE 0 #define EM_UTF8 char diff --git a/test/code_size/hello_webgl2_wasm.json b/test/code_size/hello_webgl2_wasm.json index 231111e76e8de..5316aae230ac4 100644 --- a/test/code_size/hello_webgl2_wasm.json +++ b/test/code_size/hello_webgl2_wasm.json @@ -2,9 +2,9 @@ "a.html": 454, "a.html.gz": 328, "a.js": 4531, - "a.js.gz": 2309, - "a.wasm": 10439, - "a.wasm.gz": 6728, - "total": 15424, - "total_gz": 9365 + "a.js.gz": 2306, + "a.wasm": 10430, + "a.wasm.gz": 6721, + "total": 15415, + "total_gz": 9355 } diff --git a/test/code_size/hello_webgl2_wasm2js.json b/test/code_size/hello_webgl2_wasm2js.json index 24eab4bef9426..5f150d6a2120d 100644 --- a/test/code_size/hello_webgl2_wasm2js.json +++ b/test/code_size/hello_webgl2_wasm2js.json @@ -1,8 +1,8 @@ { "a.html": 346, "a.html.gz": 262, - "a.js": 22188, - "a.js.gz": 11580, - "total": 22534, - "total_gz": 11842 + "a.js": 22194, + "a.js.gz": 11590, + "total": 22540, + "total_gz": 11852 } diff --git a/test/code_size/hello_webgl_wasm.json b/test/code_size/hello_webgl_wasm.json index e4c7caa8776cd..20f11f4785820 100644 --- a/test/code_size/hello_webgl_wasm.json +++ b/test/code_size/hello_webgl_wasm.json @@ -1,10 +1,10 @@ { "a.html": 454, "a.html.gz": 328, - "a.js": 4048, - "a.js.gz": 2147, - "a.wasm": 10439, - "a.wasm.gz": 6728, - "total": 14941, - "total_gz": 9203 + "a.js": 4069, + "a.js.gz": 2150, + "a.wasm": 10430, + "a.wasm.gz": 6721, + "total": 14953, + "total_gz": 9199 } diff --git a/test/code_size/hello_webgl_wasm2js.json b/test/code_size/hello_webgl_wasm2js.json index 6cc1a98ec7178..f2b20c9171882 100644 --- a/test/code_size/hello_webgl_wasm2js.json +++ b/test/code_size/hello_webgl_wasm2js.json @@ -1,8 +1,8 @@ { "a.html": 346, "a.html.gz": 262, - "a.js": 21690, - "a.js.gz": 11405, - "total": 22036, - "total_gz": 11667 + "a.js": 21720, + "a.js.gz": 11422, + "total": 22066, + "total_gz": 11684 } From daca3c11fe81c8d2d9ee1c762e5c8e23e32f4b1f Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Thu, 27 Jun 2024 15:49:37 -0700 Subject: [PATCH 2/2] Update more offsets. I used the following commands to make sure I got all of them this time. $ git grep "^\s*EM_BOOL[^(]*$" system/include/ | awk '{ print $3 }' | sed "s/;//" | sort | uniq > bools.txt $ for bool in `cat bools.txt`; do git grep "make[GS]etValue.*\.$bool\>.*32"; done --- src/library_html5.js | 14 ++++---- src/library_html5_webgl.js | 46 ++++++++++++------------ src/library_webgl.js | 2 +- src/library_websocket.js | 4 +-- test/code_size/hello_webgl2_wasm.json | 8 ++--- test/code_size/hello_webgl2_wasm2js.json | 4 +-- test/code_size/hello_webgl_wasm.json | 8 ++--- test/code_size/hello_webgl_wasm2js.json | 8 ++--- 8 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/library_html5.js b/src/library_html5.js index 52783861c5fd2..936c01c9445c2 100644 --- a/src/library_html5.js +++ b/src/library_html5.js @@ -808,7 +808,7 @@ var LibraryHTML5 = { {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenDeviceOrientationEvent.alpha, 'e.alpha', 'double') }}}; {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenDeviceOrientationEvent.beta, 'e.beta', 'double') }}}; {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenDeviceOrientationEvent.gamma, 'e.gamma', 'double') }}}; - {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenDeviceOrientationEvent.absolute, 'e.absolute', 'i32') }}}; + {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenDeviceOrientationEvent.absolute, 'e.absolute', 'i8') }}}; }, $registerDeviceOrientationEventCallback__deps: ['$JSEvents', '$fillDeviceOrientationEventData', '$findEventTarget'], @@ -1058,8 +1058,8 @@ var LibraryHTML5 = { // Assigning a boolean to HEAP32 with expected type coercion. /** @suppress{checkTypes} */ #endif - {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenFullscreenChangeEvent.isFullscreen, 'isFullscreen', 'i32') }}}; - {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenFullscreenChangeEvent.fullscreenEnabled, 'JSEvents.fullscreenEnabled()', 'i32') }}}; + {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenFullscreenChangeEvent.isFullscreen, 'isFullscreen', 'i8') }}}; + {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenFullscreenChangeEvent.fullscreenEnabled, 'JSEvents.fullscreenEnabled()', 'i8') }}}; // If transitioning to fullscreen, report info about the element that is now fullscreen. // If transitioning to windowed mode, report info about the element that just was fullscreen. var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; @@ -1600,7 +1600,7 @@ var LibraryHTML5 = { // Assigning a boolean to HEAP32 with expected type coercion. /** @suppress{checkTypes} */ #endif - {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenPointerlockChangeEvent.isActive, 'isPointerlocked', 'i32') }}}; + {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenPointerlockChangeEvent.isActive, 'isPointerlocked', 'i8') }}}; var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); var id = pointerLockElement?.id || ''; stringToUTF8(nodeName, eventStruct + {{{ C_STRUCTS.EmscriptenPointerlockChangeEvent.nodeName }}}, {{{ cDefs.EM_HTML5_LONG_STRING_LEN_BYTES }}}); @@ -1833,7 +1833,7 @@ var LibraryHTML5 = { // Assigning a boolean to HEAP32 with expected type coercion. /** @suppress{checkTypes} */ #endif - {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenVisibilityChangeEvent.hidden, 'document.hidden', 'i32') }}}; + {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenVisibilityChangeEvent.hidden, 'document.hidden', 'i8') }}}; {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenVisibilityChangeEvent.visibilityState, 'visibilityState', 'i32') }}}; }, @@ -1953,8 +1953,8 @@ var LibraryHTML5 = { HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchPoint.clientY / 4}}}] = t.clientY; HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchPoint.pageX / 4}}}] = t.pageX; HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchPoint.pageY / 4}}}] = t.pageY; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchPoint.isChanged / 4}}}] = t.isChanged; - HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchPoint.onTarget / 4}}}] = t.onTarget; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenTouchPoint.isChanged }}}] = t.isChanged; + HEAP8[idx + {{{ C_STRUCTS.EmscriptenTouchPoint.onTarget }}}] = t.onTarget; HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchPoint.targetX / 4}}}] = t.clientX - (targetRect.left | 0); HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchPoint.targetY / 4}}}] = t.clientY - (targetRect.top | 0); #if !DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR diff --git a/src/library_html5_webgl.js b/src/library_html5_webgl.js index 58c1bb2368cfc..5b31fa15cca5e 100644 --- a/src/library_html5_webgl.js +++ b/src/library_html5_webgl.js @@ -59,24 +59,24 @@ var LibraryHtml5WebGL = { #if ASSERTIONS assert(attributes); #endif - var a = {{{ getHeapOffset('attributes', 'i32') }}}; - var powerPreference = HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.powerPreference }}}>>2)]; + var attr32 = {{{ getHeapOffset('attributes', 'i32') }}}; + var powerPreference = HEAP32[attr32 + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.powerPreference }}}>>2)]; var contextAttributes = { - 'alpha': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.alpha }}}], - 'depth': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.depth }}}], - 'stencil': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.stencil }}}], - 'antialias': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.antialias }}}], - 'premultipliedAlpha': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.premultipliedAlpha }}}], - 'preserveDrawingBuffer': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.preserveDrawingBuffer }}}], + 'alpha': !!HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.alpha }}}], + 'depth': !!HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.depth }}}], + 'stencil': !!HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.stencil }}}], + 'antialias': !!HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.antialias }}}], + 'premultipliedAlpha': !!HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.premultipliedAlpha }}}], + 'preserveDrawingBuffer': !!HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.preserveDrawingBuffer }}}], 'powerPreference': webglPowerPreferences[powerPreference], - 'failIfMajorPerformanceCaveat': !!HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.failIfMajorPerformanceCaveat }}}], + 'failIfMajorPerformanceCaveat': !!HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.failIfMajorPerformanceCaveat }}}], // The following are not predefined WebGL context attributes in the WebGL specification, so the property names can be minified by Closure. - majorVersion: HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.majorVersion }}}>>2)], - minorVersion: HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.minorVersion }}}>>2)], - enableExtensionsByDefault: HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.enableExtensionsByDefault }}}], - explicitSwapControl: HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.explicitSwapControl }}}], - proxyContextToMainThread: HEAP32[a + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.proxyContextToMainThread }}}>>2)], - renderViaOffscreenBackBuffer: HEAP8[a + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.renderViaOffscreenBackBuffer }}}] + majorVersion: HEAP32[attr32 + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.majorVersion }}}>>2)], + minorVersion: HEAP32[attr32 + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.minorVersion }}}>>2)], + enableExtensionsByDefault: HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.enableExtensionsByDefault }}}], + explicitSwapControl: HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.explicitSwapControl }}}], + proxyContextToMainThread: HEAP32[attr32 + ({{{ C_STRUCTS.EmscriptenWebGLContextAttributes.proxyContextToMainThread }}}>>2)], + renderViaOffscreenBackBuffer: HEAP8[attributes + {{{ C_STRUCTS.EmscriptenWebGLContextAttributes.renderViaOffscreenBackBuffer }}}] }; var canvas = findCanvasEventTarget(target); @@ -264,19 +264,19 @@ var LibraryHtml5WebGL = { if (!t) return {{{ cDefs.EMSCRIPTEN_RESULT_INVALID_TARGET }}}; t = t.getContextAttributes(); - {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.alpha, 't.alpha', 'i32') }}}; - {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.depth, 't.depth', 'i32') }}}; - {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.stencil, 't.stencil', 'i32') }}}; - {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.antialias, 't.antialias', 'i32') }}}; - {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.premultipliedAlpha, 't.premultipliedAlpha', 'i32') }}}; - {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.preserveDrawingBuffer, 't.preserveDrawingBuffer', 'i32') }}}; + {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.alpha, 't.alpha', 'i8') }}}; + {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.depth, 't.depth', 'i8') }}}; + {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.stencil, 't.stencil', 'i8') }}}; + {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.antialias, 't.antialias', 'i8') }}}; + {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.premultipliedAlpha, 't.premultipliedAlpha', 'i8') }}}; + {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.preserveDrawingBuffer, 't.preserveDrawingBuffer', 'i8') }}}; var power = t['powerPreference'] && webglPowerPreferences.indexOf(t['powerPreference']); {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.powerPreference, 'power', 'i32') }}}; - {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.failIfMajorPerformanceCaveat, 't.failIfMajorPerformanceCaveat', 'i32') }}}; + {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.failIfMajorPerformanceCaveat, 't.failIfMajorPerformanceCaveat', 'i8') }}}; {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.majorVersion, 'c.version', 'i32') }}}; {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.minorVersion, 0, 'i32') }}}; #if GL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS - {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.enableExtensionsByDefault, 'c.attributes.enableExtensionsByDefault', 'i32') }}}; + {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.enableExtensionsByDefault, 'c.attributes.enableExtensionsByDefault', 'i8') }}}; #endif #if GL_SUPPORT_EXPLICIT_SWAP_CONTROL {{{ makeSetValue('a', C_STRUCTS.EmscriptenWebGLContextAttributes.explicitSwapControl, 'c.attributes.explicitSwapControl', 'i8') }}}; diff --git a/src/library_webgl.js b/src/library_webgl.js index b9324720df5ce..438f2a49366b4 100644 --- a/src/library_webgl.js +++ b/src/library_webgl.js @@ -1059,7 +1059,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; assert(handle, 'malloc() failed in GL.registerContext!'); #endif #if GL_SUPPORT_EXPLICIT_SWAP_CONTROL - {{{ makeSetValue('handle', 0, 'webGLContextAttributes.explicitSwapControl', 'i32')}}}; + {{{ makeSetValue('handle', 0, 'webGLContextAttributes.explicitSwapControl', 'i8')}}}; #endif {{{ makeSetValue('handle', POINTER_SIZE, '_pthread_self()', '*')}}}; // the thread pointer of the thread that owns the control of the context #else // PTHREADS diff --git a/src/library_websocket.js b/src/library_websocket.js index cf2763f750a10..33be0b864bad6 100644 --- a/src/library_websocket.js +++ b/src/library_websocket.js @@ -216,7 +216,7 @@ var LibraryWebSocket = { #if WEBSOCKET_DEBUG dbg(`websocket event "close": socketId=${socketId},userData=${userData},callbackFunc=${callbackFunc})`); #endif - {{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketCloseEvent.wasClean, 'e.wasClean', 'i32') }}}, + {{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketCloseEvent.wasClean, 'e.wasClean', 'i8') }}}, {{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketCloseEvent.wasClean, 'e.code', 'i16') }}}, stringToUTF8(e.reason, eventPtr + {{{ C_STRUCTS.EmscriptenWebSocketCloseEvent.reason }}}, 512); {{{ makeDynCall('iipp', 'callbackFunc') }}}(0/*TODO*/, eventPtr, userData); @@ -268,7 +268,7 @@ var LibraryWebSocket = { } {{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketMessageEvent.data, 'buf', '*') }}}, {{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketMessageEvent.numBytes, 'len', 'i32') }}}, - {{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketMessageEvent.isText, 'isText', 'i32') }}}, + {{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketMessageEvent.isText, 'isText', 'i8') }}}, {{{ makeDynCall('iipp', 'callbackFunc') }}}(0/*TODO*/, eventPtr, userData); _free(buf); } diff --git a/test/code_size/hello_webgl2_wasm.json b/test/code_size/hello_webgl2_wasm.json index 5316aae230ac4..9089504e4881a 100644 --- a/test/code_size/hello_webgl2_wasm.json +++ b/test/code_size/hello_webgl2_wasm.json @@ -1,10 +1,10 @@ { "a.html": 454, "a.html.gz": 328, - "a.js": 4531, - "a.js.gz": 2306, + "a.js": 4521, + "a.js.gz": 2312, "a.wasm": 10430, "a.wasm.gz": 6721, - "total": 15415, - "total_gz": 9355 + "total": 15405, + "total_gz": 9361 } diff --git a/test/code_size/hello_webgl2_wasm2js.json b/test/code_size/hello_webgl2_wasm2js.json index 5f150d6a2120d..22df22b3b101d 100644 --- a/test/code_size/hello_webgl2_wasm2js.json +++ b/test/code_size/hello_webgl2_wasm2js.json @@ -1,8 +1,8 @@ { "a.html": 346, "a.html.gz": 262, - "a.js": 22194, + "a.js": 22184, "a.js.gz": 11590, - "total": 22540, + "total": 22530, "total_gz": 11852 } diff --git a/test/code_size/hello_webgl_wasm.json b/test/code_size/hello_webgl_wasm.json index 20f11f4785820..fd9d5277447d5 100644 --- a/test/code_size/hello_webgl_wasm.json +++ b/test/code_size/hello_webgl_wasm.json @@ -1,10 +1,10 @@ { "a.html": 454, "a.html.gz": 328, - "a.js": 4069, - "a.js.gz": 2150, + "a.js": 4059, + "a.js.gz": 2153, "a.wasm": 10430, "a.wasm.gz": 6721, - "total": 14953, - "total_gz": 9199 + "total": 14943, + "total_gz": 9202 } diff --git a/test/code_size/hello_webgl_wasm2js.json b/test/code_size/hello_webgl_wasm2js.json index f2b20c9171882..a57e6b898806d 100644 --- a/test/code_size/hello_webgl_wasm2js.json +++ b/test/code_size/hello_webgl_wasm2js.json @@ -1,8 +1,8 @@ { "a.html": 346, "a.html.gz": 262, - "a.js": 21720, - "a.js.gz": 11422, - "total": 22066, - "total_gz": 11684 + "a.js": 21710, + "a.js.gz": 11423, + "total": 22056, + "total_gz": 11685 }