|
Lines 40-45
a/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp_sec1
|
| 40 |
#include "ObjectConstructor.h" |
40 |
#include "ObjectConstructor.h" |
| 41 |
#include "PromiseDeferredTimer.h" |
41 |
#include "PromiseDeferredTimer.h" |
| 42 |
#include "StrongInlines.h" |
42 |
#include "StrongInlines.h" |
|
|
43 |
#include "ThrowScope.h" |
| 43 |
#include "WasmBBQPlan.h" |
44 |
#include "WasmBBQPlan.h" |
| 44 |
#include "WasmToJS.h" |
45 |
#include "WasmToJS.h" |
| 45 |
#include "WasmWorklist.h" |
46 |
#include "WasmWorklist.h" |
|
Lines 77-82
static void reject(ExecState* exec, CatchScope& catchScope, JSPromiseDeferred* p
a/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp_sec2
|
| 77 |
promise->reject(exec, exception->value()); |
78 |
promise->reject(exec, exception->value()); |
| 78 |
CLEAR_AND_RETURN_IF_EXCEPTION(catchScope, void()); |
79 |
CLEAR_AND_RETURN_IF_EXCEPTION(catchScope, void()); |
| 79 |
} |
80 |
} |
|
|
81 |
|
| 82 |
static JSPromiseDeferred* createPromise(VM& vm, ExecState* exec, JSGlobalObject* globalObject) |
| 83 |
{ |
| 84 |
auto scope = DECLARE_THROW_SCOPE(vm); |
| 85 |
JSPromiseDeferred* promise = JSPromiseDeferred::create(exec, globalObject); |
| 86 |
RETURN_IF_EXCEPTION(scope, nullptr); |
| 87 |
return promise; |
| 88 |
} |
| 80 |
|
89 |
|
| 81 |
static EncodedJSValue JSC_HOST_CALL webAssemblyCompileFunc(ExecState* exec) |
90 |
static EncodedJSValue JSC_HOST_CALL webAssemblyCompileFunc(ExecState* exec) |
| 82 |
{ |
91 |
{ |
|
Lines 84-91
static EncodedJSValue JSC_HOST_CALL webAssemblyCompileFunc(ExecState* exec)
a/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp_sec3
|
| 84 |
auto scope = DECLARE_CATCH_SCOPE(vm); |
93 |
auto scope = DECLARE_CATCH_SCOPE(vm); |
| 85 |
auto* globalObject = exec->lexicalGlobalObject(); |
94 |
auto* globalObject = exec->lexicalGlobalObject(); |
| 86 |
|
95 |
|
| 87 |
JSPromiseDeferred* promise = JSPromiseDeferred::create(exec, globalObject); |
96 |
JSPromiseDeferred* promise = createPromise(vm, exec, globalObject); |
| 88 |
CLEAR_AND_RETURN_IF_EXCEPTION(scope, encodedJSValue()); |
97 |
RETURN_IF_EXCEPTION(scope, encodedJSValue()); |
| 89 |
|
98 |
|
| 90 |
Vector<Strong<JSCell>> dependencies; |
99 |
Vector<Strong<JSCell>> dependencies; |
| 91 |
dependencies.append(Strong<JSCell>(vm, globalObject)); |
100 |
dependencies.append(Strong<JSCell>(vm, globalObject)); |
|
Lines 184-199
static EncodedJSValue JSC_HOST_CALL webAssemblyInstantiateFunc(ExecState* exec)
a/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp_sec4
|
| 184 |
{ |
193 |
{ |
| 185 |
VM& vm = exec->vm(); |
194 |
VM& vm = exec->vm(); |
| 186 |
auto scope = DECLARE_CATCH_SCOPE(vm); |
195 |
auto scope = DECLARE_CATCH_SCOPE(vm); |
| 187 |
|
196 |
auto* globalObject = exec->lexicalGlobalObject(); |
| 188 |
JSPromiseDeferred* promise = JSPromiseDeferred::create(exec, exec->lexicalGlobalObject()); |
197 |
|
| 189 |
CLEAR_AND_RETURN_IF_EXCEPTION(scope, encodedJSValue()); |
198 |
JSPromiseDeferred* promise = createPromise(vm, exec, globalObject); |
|
|
199 |
RETURN_IF_EXCEPTION(scope, encodedJSValue()); |
| 190 |
|
200 |
|
| 191 |
JSValue importArgument = exec->argument(1); |
201 |
JSValue importArgument = exec->argument(1); |
| 192 |
JSObject* importObject = importArgument.getObject(); |
202 |
JSObject* importObject = importArgument.getObject(); |
| 193 |
if (!importArgument.isUndefined() && !importObject) { |
203 |
if (!importArgument.isUndefined() && !importObject) { |
| 194 |
promise->reject(exec, createTypeError(exec, |
204 |
promise->reject(exec, createTypeError(exec, |
| 195 |
ASCIILiteral("second argument to WebAssembly.instantiate must be undefined or an Object"), defaultSourceAppender, runtimeTypeForValue(importArgument))); |
205 |
ASCIILiteral("second argument to WebAssembly.instantiate must be undefined or an Object"), defaultSourceAppender, runtimeTypeForValue(importArgument))); |
| 196 |
CLEAR_AND_RETURN_IF_EXCEPTION(scope, encodedJSValue()); |
206 |
RETURN_IF_EXCEPTION(scope, encodedJSValue()); |
| 197 |
return JSValue::encode(promise->promise()); |
207 |
return JSValue::encode(promise->promise()); |
| 198 |
} |
208 |
} |
| 199 |
|
209 |
|
| 200 |
- |
|
|