WebAssembly: name ExecState consistently
authorjfbastien@apple.com <jfbastien@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 22 Mar 2017 17:56:29 +0000 (17:56 +0000)
committerjfbastien@apple.com <jfbastien@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 22 Mar 2017 17:56:29 +0000 (17:56 +0000)
https://bugs.webkit.org/show_bug.cgi?id=169954

Reviewed by Saam Barati.

No functional change.

* wasm/js/JSWebAssemblyCompileError.cpp:
(JSC::JSWebAssemblyCompileError::create):
(JSC::createJSWebAssemblyCompileError):
* wasm/js/JSWebAssemblyCompileError.h:
(JSC::JSWebAssemblyCompileError::create):
* wasm/js/JSWebAssemblyLinkError.cpp:
(JSC::JSWebAssemblyLinkError::create):
(JSC::createJSWebAssemblyLinkError):
* wasm/js/JSWebAssemblyLinkError.h:
(JSC::JSWebAssemblyLinkError::create):
* wasm/js/JSWebAssemblyRuntimeError.cpp:
(JSC::JSWebAssemblyRuntimeError::create):
* wasm/js/JSWebAssemblyRuntimeError.h:
(JSC::JSWebAssemblyRuntimeError::create):
* wasm/js/WebAssemblyInstanceConstructor.cpp:
(JSC::callJSWebAssemblyInstance):
* wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::callJSWebAssemblyMemory):
* wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::callJSWebAssemblyModule):
(JSC::WebAssemblyModuleConstructor::createModule):
* wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
(JSC::dataSegmentFail):
(JSC::WebAssemblyModuleRecord::evaluate):
* wasm/js/WebAssemblyPrototype.cpp:
(JSC::webAssemblyFunctionValidate):
(JSC::webAssemblyFunctionCompile):
* wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::callJSWebAssemblyTable):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214261 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.cpp
Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.h
Source/JavaScriptCore/wasm/js/JSWebAssemblyLinkError.cpp
Source/JavaScriptCore/wasm/js/JSWebAssemblyLinkError.h
Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.cpp
Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.h
Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.cpp
Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp
Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp
Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp
Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp
Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp

index d8e9e55..a5c9efc 100644 (file)
@@ -1,5 +1,45 @@
 2017-03-22  JF Bastien  <jfbastien@apple.com>
 
+        WebAssembly: name ExecState consistently
+        https://bugs.webkit.org/show_bug.cgi?id=169954
+
+        Reviewed by Saam Barati.
+
+        No functional change.
+
+        * wasm/js/JSWebAssemblyCompileError.cpp:
+        (JSC::JSWebAssemblyCompileError::create):
+        (JSC::createJSWebAssemblyCompileError):
+        * wasm/js/JSWebAssemblyCompileError.h:
+        (JSC::JSWebAssemblyCompileError::create):
+        * wasm/js/JSWebAssemblyLinkError.cpp:
+        (JSC::JSWebAssemblyLinkError::create):
+        (JSC::createJSWebAssemblyLinkError):
+        * wasm/js/JSWebAssemblyLinkError.h:
+        (JSC::JSWebAssemblyLinkError::create):
+        * wasm/js/JSWebAssemblyRuntimeError.cpp:
+        (JSC::JSWebAssemblyRuntimeError::create):
+        * wasm/js/JSWebAssemblyRuntimeError.h:
+        (JSC::JSWebAssemblyRuntimeError::create):
+        * wasm/js/WebAssemblyInstanceConstructor.cpp:
+        (JSC::callJSWebAssemblyInstance):
+        * wasm/js/WebAssemblyMemoryConstructor.cpp:
+        (JSC::callJSWebAssemblyMemory):
+        * wasm/js/WebAssemblyModuleConstructor.cpp:
+        (JSC::callJSWebAssemblyModule):
+        (JSC::WebAssemblyModuleConstructor::createModule):
+        * wasm/js/WebAssemblyModuleRecord.cpp:
+        (JSC::WebAssemblyModuleRecord::link):
+        (JSC::dataSegmentFail):
+        (JSC::WebAssemblyModuleRecord::evaluate):
+        * wasm/js/WebAssemblyPrototype.cpp:
+        (JSC::webAssemblyFunctionValidate):
+        (JSC::webAssemblyFunctionCompile):
+        * wasm/js/WebAssemblyTableConstructor.cpp:
+        (JSC::callJSWebAssemblyTable):
+
+2017-03-22  JF Bastien  <jfbastien@apple.com>
+
         WebAssembly: constructors without new don't throw
         https://bugs.webkit.org/show_bug.cgi?id=165995
 
index e485889..631bbb7 100644 (file)
 
 namespace JSC {
 
-JSWebAssemblyCompileError* JSWebAssemblyCompileError::create(ExecState* state, VM& vm, Structure* structure, const String& message)
+JSWebAssemblyCompileError* JSWebAssemblyCompileError::create(ExecState* exec, VM& vm, Structure* structure, const String& message)
 {
     auto* instance = new (NotNull, allocateCell<JSWebAssemblyCompileError>(vm.heap)) JSWebAssemblyCompileError(vm, structure);
     instance->m_sourceAppender = defaultSourceAppender;
     bool useCurrentFrame = true;
-    instance->finishCreation(state, vm, message, useCurrentFrame);
+    instance->finishCreation(exec, vm, message, useCurrentFrame);
     return instance;
 }
 
@@ -49,11 +49,11 @@ JSWebAssemblyCompileError::JSWebAssemblyCompileError(VM& vm, Structure* structur
 const ClassInfo JSWebAssemblyCompileError::s_info = { "WebAssembly.CompileError", &Base::s_info, 0, CREATE_METHOD_TABLE(JSWebAssemblyCompileError) };
 
     
-JSObject* createJSWebAssemblyCompileError(ExecState* state, VM& vm, const String& message)
+JSObject* createJSWebAssemblyCompileError(ExecState* exec, VM& vm, const String& message)
 {
     ASSERT(!message.isEmpty());
-    JSGlobalObject* globalObject = state->lexicalGlobalObject();
-    return JSWebAssemblyCompileError::create(state, vm, globalObject->WebAssemblyCompileErrorStructure(), message);
+    JSGlobalObject* globalObject = exec->lexicalGlobalObject();
+    return JSWebAssemblyCompileError::create(exec, vm, globalObject->WebAssemblyCompileErrorStructure(), message);
 }
 
 } // namespace JSC
index 04e3f2a..f6cd987 100644 (file)
@@ -36,9 +36,9 @@ public:
     typedef ErrorInstance Base;
 
     static JSWebAssemblyCompileError* create(ExecState*, VM&, Structure*, const String&);
-    static JSWebAssemblyCompileError* create(ExecState* state, VM& vm, Structure* structure, JSValue message)
+    static JSWebAssemblyCompileError* create(ExecState* exec, VM& vm, Structure* structure, JSValue message)
     {
-        return create(state, vm, structure, message.isUndefined() ? String() : message.toWTFString(state));
+        return create(exec, vm, structure, message.isUndefined() ? String() : message.toWTFString(exec));
     }
 
     DECLARE_INFO;
index ef52fe8..9279858 100644 (file)
 
 namespace JSC {
 
-JSWebAssemblyLinkError* JSWebAssemblyLinkError::create(ExecState* state, VM& vm, Structure* structure, const String& message)
+JSWebAssemblyLinkError* JSWebAssemblyLinkError::create(ExecState* exec, VM& vm, Structure* structure, const String& message)
 {
     auto* instance = new (NotNull, allocateCell<JSWebAssemblyLinkError>(vm.heap)) JSWebAssemblyLinkError(vm, structure);
     instance->m_sourceAppender = defaultSourceAppender;
     bool useCurrentFrame = true;
-    instance->finishCreation(state, vm, message, useCurrentFrame);
+    instance->finishCreation(exec, vm, message, useCurrentFrame);
     return instance;
 }
 
@@ -49,11 +49,11 @@ JSWebAssemblyLinkError::JSWebAssemblyLinkError(VM& vm, Structure* structure)
 const ClassInfo JSWebAssemblyLinkError::s_info = { "WebAssembly.LinkError", &Base::s_info, 0, CREATE_METHOD_TABLE(JSWebAssemblyLinkError) };
 
     
-JSObject* createJSWebAssemblyLinkError(ExecState* state, VM& vm, const String& message)
+JSObject* createJSWebAssemblyLinkError(ExecState* exec, VM& vm, const String& message)
 {
     ASSERT(!message.isEmpty());
-    JSGlobalObject* globalObject = state->lexicalGlobalObject();
-    return JSWebAssemblyLinkError::create(state, vm, globalObject->WebAssemblyLinkErrorStructure(), message);
+    JSGlobalObject* globalObject = exec->lexicalGlobalObject();
+    return JSWebAssemblyLinkError::create(exec, vm, globalObject->WebAssemblyLinkErrorStructure(), message);
 }
 
 } // namespace JSC
index f2651eb..4172e64 100644 (file)
@@ -36,9 +36,9 @@ public:
     typedef ErrorInstance Base;
 
     static JSWebAssemblyLinkError* create(ExecState*, VM&, Structure*, const String&);
-    static JSWebAssemblyLinkError* create(ExecState* state, VM& vm, Structure* structure, JSValue message)
+    static JSWebAssemblyLinkError* create(ExecState* exec, VM& vm, Structure* structure, JSValue message)
     {
-        return create(state, vm, structure, message.isUndefined() ? String() : message.toWTFString(state));
+        return create(exec, vm, structure, message.isUndefined() ? String() : message.toWTFString(exec));
     }
 
     DECLARE_INFO;
index e212a37..5cbbc0f 100644 (file)
 
 namespace JSC {
 
-JSWebAssemblyRuntimeError* JSWebAssemblyRuntimeError::create(ExecState* state, VM& vm, Structure* structure, const String& message)
+JSWebAssemblyRuntimeError* JSWebAssemblyRuntimeError::create(ExecState* exec, VM& vm, Structure* structure, const String& message)
 {
     auto* instance = new (NotNull, allocateCell<JSWebAssemblyRuntimeError>(vm.heap)) JSWebAssemblyRuntimeError(vm, structure);
     instance->m_sourceAppender = defaultSourceAppender;
     bool useCurrentFrame = true;
-    instance->finishCreation(state, vm, message, useCurrentFrame);
+    instance->finishCreation(exec, vm, message, useCurrentFrame);
     return instance;
 }
 
index 5ac630d..22a9e7e 100644 (file)
@@ -36,9 +36,9 @@ public:
     typedef ErrorInstance Base;
 
     static JSWebAssemblyRuntimeError* create(ExecState*, VM&, Structure*, const String&);
-    static JSWebAssemblyRuntimeError* create(ExecState* state, VM& vm, Structure* structure, JSValue message)
+    static JSWebAssemblyRuntimeError* create(ExecState* exec, VM& vm, Structure* structure, JSValue message)
     {
-        return create(state, vm, structure, message.isUndefined() ? String() : message.toWTFString(state));
+        return create(exec, vm, structure, message.isUndefined() ? String() : message.toWTFString(exec));
     }
 
     DECLARE_INFO;
index 7f07305..ac3181b 100644 (file)
@@ -319,11 +319,11 @@ JSWebAssemblyInstance* WebAssemblyInstanceConstructor::createInstance(ExecState*
     return instance;
 }
 
-static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyInstance(ExecState* state)
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyInstance(ExecState* exec)
 {
-    VM& vm = state->vm();
+    VM& vm = exec->vm();
     auto scope = DECLARE_THROW_SCOPE(vm);
-    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, scope, "WebAssembly.Instance"));
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(exec, scope, "WebAssembly.Instance"));
 }
 
 WebAssemblyInstanceConstructor* WebAssemblyInstanceConstructor::create(VM& vm, Structure* structure, WebAssemblyInstancePrototype* thisPrototype)
index 51129e3..cfe8b9f 100644 (file)
@@ -103,11 +103,11 @@ static EncodedJSValue JSC_HOST_CALL constructJSWebAssemblyMemory(ExecState* exec
     return JSValue::encode(JSWebAssemblyMemory::create(vm, exec->lexicalGlobalObject()->WebAssemblyMemoryStructure(), adoptRef(*memory.leakRef())));
 }
 
-static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyMemory(ExecState* state)
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyMemory(ExecState* exec)
 {
-    VM& vm = state->vm();
+    VM& vm = exec->vm();
     auto throwScope = DECLARE_THROW_SCOPE(vm);
-    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, throwScope, "WebAssembly.Memory"));
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(exec, throwScope, "WebAssembly.Memory"));
 }
 
 WebAssemblyMemoryConstructor* WebAssemblyMemoryConstructor::create(VM& vm, Structure* structure, WebAssemblyMemoryPrototype* thisPrototype)
index c45bc3f..59709f5 100644 (file)
@@ -63,25 +63,25 @@ static EncodedJSValue JSC_HOST_CALL constructJSWebAssemblyModule(ExecState* exec
     return JSValue::encode(WebAssemblyModuleConstructor::createModule(exec, exec->argument(0), structure));
 }
 
-static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyModule(ExecState* state)
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyModule(ExecState* exec)
 {
-    VM& vm = state->vm();
+    VM& vm = exec->vm();
     auto scope = DECLARE_THROW_SCOPE(vm);
-    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, scope, "WebAssembly.Module"));
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(exec, scope, "WebAssembly.Module"));
 }
 
-JSValue WebAssemblyModuleConstructor::createModule(ExecState* state, JSValue buffer, Structure* structure)
+JSValue WebAssemblyModuleConstructor::createModule(ExecState* exec, JSValue buffer, Structure* structure)
 {
-    VM& vm = state->vm();
+    VM& vm = exec->vm();
     auto scope = DECLARE_THROW_SCOPE(vm);
 
     size_t byteOffset;
     size_t byteSize;
-    uint8_t* base = getWasmBufferFromValue(state, buffer, byteOffset, byteSize);
+    uint8_t* base = getWasmBufferFromValue(exec, buffer, byteOffset, byteSize);
     RETURN_IF_EXCEPTION(scope, { });
 
     scope.release();
-    return JSWebAssemblyModule::create(vm, state, structure, base + byteOffset, byteSize);
+    return JSWebAssemblyModule::create(vm, exec, structure, base + byteOffset, byteSize);
 }
 
 WebAssemblyModuleConstructor* WebAssemblyModuleConstructor::create(VM& vm, Structure* structure, WebAssemblyModulePrototype* thisPrototype)
index 5f9bf2c..fffee5c 100644 (file)
@@ -85,12 +85,12 @@ void WebAssemblyModuleRecord::visitChildren(JSCell* cell, SlotVisitor& visitor)
     visitor.append(thisObject->m_startFunction);
 }
 
-void WebAssemblyModuleRecord::link(ExecState* state, JSWebAssemblyInstance* instance)
+void WebAssemblyModuleRecord::link(ExecState* exec, JSWebAssemblyInstance* instance)
 {
-    VM& vm = state->vm();
+    VM& vm = exec->vm();
     auto scope = DECLARE_THROW_SCOPE(vm);
     UNUSED_PARAM(scope);
-    auto* globalObject = state->lexicalGlobalObject();
+    auto* globalObject = exec->lexicalGlobalObject();
 
     JSWebAssemblyModule* module = instance->module();
     JSWebAssemblyCodeBlock* codeBlock = instance->codeBlock();
@@ -158,7 +158,7 @@ void WebAssemblyModuleRecord::link(ExecState* state, JSWebAssemblyInstance* inst
                 break;
 
             case Wasm::I64:
-                throwException(state, scope, createJSWebAssemblyLinkError(state, vm, ASCIILiteral("exported global cannot be an i64")));
+                throwException(exec, scope, createJSWebAssemblyLinkError(exec, vm, ASCIILiteral("exported global cannot be an i64")));
                 return;
 
             case Wasm::F32:
@@ -179,7 +179,7 @@ void WebAssemblyModuleRecord::link(ExecState* state, JSWebAssemblyInstance* inst
         bool shouldThrowReadOnlyError = false;
         bool ignoreReadOnlyErrors = true;
         bool putResult = false;
-        symbolTablePutTouchWatchpointSet(moduleEnvironment, state, exp.field, exportedValue, shouldThrowReadOnlyError, ignoreReadOnlyErrors, putResult);
+        symbolTablePutTouchWatchpointSet(moduleEnvironment, exec, exp.field, exportedValue, shouldThrowReadOnlyError, ignoreReadOnlyErrors, putResult);
         RELEASE_ASSERT(putResult);
     }
 
@@ -208,14 +208,14 @@ void WebAssemblyModuleRecord::link(ExecState* state, JSWebAssemblyInstance* inst
 }
 
 template <typename Scope, typename M, typename N, typename ...Args>
-NEVER_INLINE static JSValue dataSegmentFail(ExecState* state, VM& vm, Scope& scope, M memorySize, N segmentSize, N offset, Args... args)
+NEVER_INLINE static JSValue dataSegmentFail(ExecState* exec, VM& vm, Scope& scope, M memorySize, N segmentSize, N offset, Args... args)
 {
-    return throwException(state, scope, createJSWebAssemblyLinkError(state, vm, makeString(ASCIILiteral("Invalid data segment initialization: segment of "), String::number(segmentSize), ASCIILiteral(" bytes memory of "), String::number(memorySize), ASCIILiteral(" bytes, at offset "), String::number(offset), args...)));
+    return throwException(exec, scope, createJSWebAssemblyLinkError(exec, vm, makeString(ASCIILiteral("Invalid data segment initialization: segment of "), String::number(segmentSize), ASCIILiteral(" bytes memory of "), String::number(memorySize), ASCIILiteral(" bytes, at offset "), String::number(offset), args...)));
 }
 
-JSValue WebAssemblyModuleRecord::evaluate(ExecState* state)
+JSValue WebAssemblyModuleRecord::evaluate(ExecState* exec)
 {
-    VM& vm = state->vm();
+    VM& vm = exec->vm();
     auto scope = DECLARE_THROW_SCOPE(vm);
 
     {
@@ -241,7 +241,7 @@ JSValue WebAssemblyModuleRecord::evaluate(ExecState* state)
 
             uint64_t lastWrittenIndex = static_cast<uint64_t>(tableIndex) + static_cast<uint64_t>(element.functionIndices.size()) - 1;
             if (lastWrittenIndex >= table->size())
-                return throwException(state, scope, createJSWebAssemblyLinkError(state, vm, ASCIILiteral("Element is trying to set an out of bounds table index")));
+                return throwException(exec, scope, createJSWebAssemblyLinkError(exec, vm, ASCIILiteral("Element is trying to set an out of bounds table index")));
 
             for (uint32_t i = 0; i < element.functionIndices.size(); ++i) {
                 // FIXME: This essentially means we're exporting an import.
@@ -300,9 +300,9 @@ JSValue WebAssemblyModuleRecord::evaluate(ExecState* state)
                         offset = segment->offset.constValue();
 
                     if (UNLIKELY(sizeInBytes < segment->sizeInBytes))
-                        return dataSegmentFail(state, vm, scope, sizeInBytes, segment->sizeInBytes, offset, ASCIILiteral(", segment is too big"));
+                        return dataSegmentFail(exec, vm, scope, sizeInBytes, segment->sizeInBytes, offset, ASCIILiteral(", segment is too big"));
                     if (UNLIKELY(offset > sizeInBytes - segment->sizeInBytes))
-                        return dataSegmentFail(state, vm, scope, sizeInBytes, segment->sizeInBytes, offset, ASCIILiteral(", segment writes outside of memory"));
+                        return dataSegmentFail(exec, vm, scope, sizeInBytes, segment->sizeInBytes, offset, ASCIILiteral(", segment writes outside of memory"));
                     RELEASE_ASSERT(memory);
                     memcpy(memory + offset, &segment->byte(0), segment->sizeInBytes);
                 }
@@ -313,7 +313,7 @@ JSValue WebAssemblyModuleRecord::evaluate(ExecState* state)
     if (JSObject* startFunction = m_startFunction.get()) {
         CallData callData;
         CallType callType = JSC::getCallData(startFunction, callData);
-        call(state, startFunction, callType, callData, jsUndefined(), state->emptyList());
+        call(exec, startFunction, callType, callData, jsUndefined(), exec->emptyList());
         RETURN_IF_EXCEPTION(scope, { });
     }
 
index 2d4e004..2e17977 100644 (file)
 
 namespace JSC {
 
-static EncodedJSValue JSC_HOST_CALL webAssemblyFunctionValidate(ExecState* state)
+static EncodedJSValue JSC_HOST_CALL webAssemblyFunctionValidate(ExecState* exec)
 {
-    VM& vm = state->vm();
+    VM& vm = exec->vm();
     auto scope = DECLARE_THROW_SCOPE(vm);
-    return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral("WebAssembly doesn't yet implement the validate function property"))));
+    return JSValue::encode(throwException(exec, scope, createError(exec, ASCIILiteral("WebAssembly doesn't yet implement the validate function property"))));
 }
 
-static EncodedJSValue JSC_HOST_CALL webAssemblyFunctionCompile(ExecState* state)
+static EncodedJSValue JSC_HOST_CALL webAssemblyFunctionCompile(ExecState* exec)
 {
-    VM& vm = state->vm();
+    VM& vm = exec->vm();
     auto scope = DECLARE_THROW_SCOPE(vm);
-    return JSValue::encode(throwException(state, scope, createError(state, ASCIILiteral("WebAssembly doesn't yet implement the compile function property"))));
+    return JSValue::encode(throwException(exec, scope, createError(exec, ASCIILiteral("WebAssembly doesn't yet implement the compile function property"))));
 }
 
 }
index 12d27ab..88f563c 100644 (file)
@@ -94,11 +94,11 @@ static EncodedJSValue JSC_HOST_CALL constructJSWebAssemblyTable(ExecState* exec)
     return JSValue::encode(JSWebAssemblyTable::create(exec, vm, exec->lexicalGlobalObject()->WebAssemblyTableStructure(), initial, maximum));
 }
 
-static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyTable(ExecState* state)
+static EncodedJSValue JSC_HOST_CALL callJSWebAssemblyTable(ExecState* exec)
 {
-    VM& vm = state->vm();
+    VM& vm = exec->vm();
     auto scope = DECLARE_THROW_SCOPE(vm);
-    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(state, scope, "WebAssembly.Table"));
+    return JSValue::encode(throwConstructorCannotBeCalledAsFunctionTypeError(exec, scope, "WebAssembly.Table"));
 }
 
 WebAssemblyTableConstructor* WebAssemblyTableConstructor::create(VM& vm, Structure* structure, WebAssemblyTablePrototype* thisPrototype)