diff --git a/src/lib/libembind.js b/src/lib/libembind.js index 38fc95bb42687..a3d3378cc1e91 100644 --- a/src/lib/libembind.js +++ b/src/lib/libembind.js @@ -30,14 +30,13 @@ var LibraryEmbind = { $UnboundTypeError: class extends Error {}, $PureVirtualError: class extends Error {}, - $GenericWireTypeSize: {{{ 2 * POINTER_SIZE }}}, #if EMBIND_AOT $InvokerFunctions: '<<< EMBIND_AOT_INVOKERS >>>', #endif // If register_type is used, emval will be registered multiple times for // different type id's, but only a single type object is needed on the JS side // for all of them. Store the type for reuse. - $EmValType__deps: ['_emval_decref', '$Emval', '$readPointer', '$GenericWireTypeSize'], + $EmValType__deps: ['_emval_decref', '$Emval', '$readPointer'], $EmValType: `{ name: 'emscripten::val', 'fromWireType': (handle) => { @@ -46,7 +45,6 @@ var LibraryEmbind = { return rv; }, 'toWireType': (destructors, value) => Emval.toHandle(value), - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': readPointer, destructorFunction: null, // This type does not need a destructor @@ -221,11 +219,6 @@ var LibraryEmbind = { $registerType__deps: ['$sharedRegisterType'], $registerType__docs: '/** @param {Object=} options */', $registerType: function(rawType, registeredInstance, options = {}) { -#if ASSERTIONS - if (registeredInstance.argPackAdvance === undefined) { - throw new TypeError('registerType registeredInstance requires argPackAdvance'); - } -#endif return sharedRegisterType(rawType, registeredInstance, options); }, @@ -235,7 +228,6 @@ var LibraryEmbind = { registerType(rawType, { isVoid: true, // void return values can be optimized out sometimes name, - argPackAdvance: 0, 'fromWireType': () => undefined, // TODO: assert if anything else is given? 'toWireType': (destructors, o) => undefined, @@ -243,7 +235,7 @@ var LibraryEmbind = { }, _embind_register_bool__docs: '/** @suppress {globalThis} */', - _embind_register_bool__deps: ['$AsciiToString', '$registerType', '$GenericWireTypeSize'], + _embind_register_bool__deps: ['$AsciiToString', '$registerType'], _embind_register_bool: (rawType, name, trueValue, falseValue) => { name = AsciiToString(name); registerType(rawType, { @@ -256,7 +248,6 @@ var LibraryEmbind = { 'toWireType': function(destructors, o) { return o ? trueValue : falseValue; }, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': function(pointer) { return this['fromWireType'](HEAPU8[pointer]); }, @@ -363,7 +354,6 @@ var LibraryEmbind = { // https://www.w3.org/TR/wasm-js-api-1/#towebassemblyvalue return value; }, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': integerReadValueFromPointer(name, size, minRange !== 0), destructorFunction: null, // This type does not need a destructor }); @@ -415,7 +405,6 @@ var LibraryEmbind = { #endif return value; }, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': integerReadValueFromPointer(name, size, !isUnsignedType), destructorFunction: null, // This type does not need a destructor }); @@ -446,7 +435,6 @@ var LibraryEmbind = { // https://www.w3.org/TR/wasm-js-api-1/#towebassemblyvalue return value; }, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': floatReadValueFromPointer(name, size), destructorFunction: null, // This type does not need a destructor }); @@ -536,7 +524,6 @@ var LibraryEmbind = { } return base; }, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': readPointer, destructorFunction(ptr) { _free(ptr); @@ -592,7 +579,6 @@ var LibraryEmbind = { } return ptr; }, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': readPointer, destructorFunction(ptr) { _free(ptr); @@ -643,7 +629,6 @@ var LibraryEmbind = { registerType(rawType, { name, 'fromWireType': decodeMemoryView, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': decodeMemoryView, }, { ignoreDuplicateRegistrations: true, @@ -971,7 +956,6 @@ var LibraryEmbind = { } return ptr; }, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': readPointer, destructorFunction: rawDestructor, }]; @@ -1082,7 +1066,6 @@ var LibraryEmbind = { } return ptr; }, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': readPointer, destructorFunction: rawDestructor, }]; @@ -1218,7 +1201,6 @@ var LibraryEmbind = { '$RegisteredPointer', '$readPointer', '$RegisteredPointer_fromWireType', - '$GenericWireTypeSize', ], $init_RegisteredPointer: () => { Object.assign(RegisteredPointer.prototype, { @@ -1231,7 +1213,6 @@ var LibraryEmbind = { destructor(ptr) { this.rawDestructor?.(ptr); }, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': readPointer, 'fromWireType': RegisteredPointer_fromWireType, }); @@ -2255,7 +2236,6 @@ var LibraryEmbind = { return this.constructor.values[c]; }, 'toWireType': (destructors, c) => c.value, - argPackAdvance: GenericWireTypeSize, 'readValueFromPointer': enumReadValueFromPointer(name, size, isSigned), destructorFunction: null, }); diff --git a/src/lib/libemval.js b/src/lib/libemval.js index aed8122e78038..92e95f5491c8f 100644 --- a/src/lib/libemval.js +++ b/src/lib/libemval.js @@ -310,6 +310,8 @@ var LibraryEmVal = { '$createNamedFunction', '$emval_returnValue', ], _emval_get_method_caller: (argCount, argTypes, kind) => { + var GenericWireTypeSize = {{{ 2 * POINTER_SIZE }}}; + var types = emval_lookupTypes(argCount, argTypes); var retType = types.shift(); argCount--; // remove the shifted off return type @@ -320,7 +322,7 @@ var LibraryEmVal = { var offset = 0; for (var i = 0; i < argCount; ++i) { argN[i] = types[i]['readValueFromPointer'](args + offset); - offset += types[i].argPackAdvance; + offset += GenericWireTypeSize; } var rv = kind === /* CONSTRUCTOR */ 1 ? Reflect.construct(func, argN) : func.apply(obj, argN); return emval_returnValue(retType, destructorsRef, rv); @@ -342,7 +344,7 @@ var LibraryEmVal = { args.push(types[i]); functionBody += ` var arg${i} = argType${i}.readValueFromPointer(args${offset ? '+' + offset : ''});\n`; - offset += types[i].argPackAdvance; + offset += GenericWireTypeSize; } var invoker = kind === /* CONSTRUCTOR */ 1 ? 'new func' : 'func.call'; functionBody += diff --git a/test/code_size/embind_hello_wasm.json b/test/code_size/embind_hello_wasm.json index 796e2225ba479..f0ed7f9061df1 100644 --- a/test/code_size/embind_hello_wasm.json +++ b/test/code_size/embind_hello_wasm.json @@ -1,10 +1,10 @@ { "a.html": 552, "a.html.gz": 380, - "a.js": 7716, - "a.js.gz": 3372, + "a.js": 7680, + "a.js.gz": 3363, "a.wasm": 7290, "a.wasm.gz": 3343, - "total": 15558, - "total_gz": 7095 + "total": 15522, + "total_gz": 7086 } diff --git a/test/code_size/embind_val_wasm.json b/test/code_size/embind_val_wasm.json index a2565a1dcbb38..c728c849e521a 100644 --- a/test/code_size/embind_val_wasm.json +++ b/test/code_size/embind_val_wasm.json @@ -1,10 +1,10 @@ { "a.html": 552, "a.html.gz": 380, - "a.js": 5726, - "a.js.gz": 2548, + "a.js": 5685, + "a.js.gz": 2538, "a.wasm": 9083, "a.wasm.gz": 4682, - "total": 15361, - "total_gz": 7610 + "total": 15320, + "total_gz": 7600 }