Index: src/wasm/wasm-js.cc |
diff --git a/src/wasm/wasm-js.cc b/src/wasm/wasm-js.cc |
index 9c16597b5d99cd67ddd055d9df86ba1ebc0bc3e2..e88efba82d03c73e8a463a5ec1e68d826a2e0f6f 100644 |
--- a/src/wasm/wasm-js.cc |
+++ b/src/wasm/wasm-js.cc |
@@ -74,50 +74,6 @@ i::MaybeHandle<i::WasmModuleObject> GetFirstArgumentAsModule( |
v8::Utils::OpenHandle(*module_obj)); |
} |
-bool IsCompilationAllowed(i::Isolate* isolate, ErrorThrower* thrower, |
- v8::Local<v8::Value> source, bool is_async) { |
- // Allow caller to do one final check on thrower state, rather than |
- // one at each step. No information is lost - failure reason is captured |
- // in the thrower state. |
- if (thrower->error()) return false; |
- |
- AllowWasmCompileCallback callback = isolate->allow_wasm_compile_callback(); |
- if (callback != nullptr && |
- !callback(reinterpret_cast<v8::Isolate*>(isolate), source, is_async)) { |
- thrower->RangeError( |
- "%ssynchronous compilation disallowed due to module size limit set by " |
- "embedder", |
- is_async ? "a" : ""); |
- return false; |
- } |
- return true; |
-} |
- |
-bool IsInstantiationAllowed(i::Isolate* isolate, ErrorThrower* thrower, |
- v8::Local<v8::Value> module_or_bytes, |
- i::MaybeHandle<i::JSReceiver> ffi, bool is_async) { |
- // Allow caller to do one final check on thrower state, rather than |
- // one at each step. No information is lost - failure reason is captured |
- // in the thrower state. |
- if (thrower->error()) return false; |
- v8::MaybeLocal<v8::Value> v8_ffi; |
- if (!ffi.is_null()) { |
- v8_ffi = v8::Local<v8::Value>::Cast(Utils::ToLocal(ffi.ToHandleChecked())); |
- } |
- AllowWasmInstantiateCallback callback = |
- isolate->allow_wasm_instantiate_callback(); |
- if (callback != nullptr && |
- !callback(reinterpret_cast<v8::Isolate*>(isolate), module_or_bytes, |
- v8_ffi, is_async)) { |
- thrower->RangeError( |
- "%ssynchronous instantiation disallowed due to module size limit set " |
- "by embedder", |
- is_async ? "a" : ""); |
- return false; |
- } |
- return true; |
-} |
- |
i::wasm::ModuleWireBytes GetFirstArgumentAsBytes( |
const v8::FunctionCallbackInfo<v8::Value>& args, ErrorThrower* thrower) { |
if (args.Length() < 1) { |
@@ -190,12 +146,11 @@ void WebAssemblyCompile(const v8::FunctionCallbackInfo<v8::Value>& args) { |
return_value.Set(resolver->GetPromise()); |
auto bytes = GetFirstArgumentAsBytes(args, &thrower); |
- if (!IsCompilationAllowed(i_isolate, &thrower, args[0], true)) { |
+ if (thrower.error()) { |
auto maybe = resolver->Reject(context, Utils::ToLocal(thrower.Reify())); |
CHECK(!maybe.IsNothing()); |
return; |
} |
- DCHECK(!thrower.error()); |
i::Handle<i::JSPromise> promise = Utils::OpenHandle(*resolver->GetPromise()); |
i::wasm::AsyncCompile(i_isolate, promise, bytes); |
} |
@@ -230,9 +185,10 @@ void WebAssemblyModule(const v8::FunctionCallbackInfo<v8::Value>& args) { |
ErrorThrower thrower(i_isolate, "WebAssembly.Module()"); |
auto bytes = GetFirstArgumentAsBytes(args, &thrower); |
- if (!IsCompilationAllowed(i_isolate, &thrower, args[0], false)) return; |
- DCHECK(!thrower.error()); |
+ if (thrower.error()) { |
+ return; |
+ } |
i::MaybeHandle<i::Object> module_obj = |
i::wasm::SyncCompile(i_isolate, &thrower, bytes); |
if (module_obj.is_null()) return; |
@@ -309,11 +265,7 @@ void WebAssemblyInstance(const v8::FunctionCallbackInfo<v8::Value>& args) { |
if (thrower.error()) return; |
auto maybe_imports = GetSecondArgumentAsImports(args, &thrower); |
- if (!IsInstantiationAllowed(i_isolate, &thrower, args[0], maybe_imports, |
- false)) { |
- return; |
- } |
- DCHECK(!thrower.error()); |
+ if (thrower.error()) return; |
i::MaybeHandle<i::Object> instance_object = i::wasm::SyncInstantiate( |
i_isolate, &thrower, maybe_module.ToHandleChecked(), maybe_imports, |
@@ -366,12 +318,6 @@ void WebAssemblyInstantiate(const v8::FunctionCallbackInfo<v8::Value>& args) { |
CHECK(!maybe.IsNothing()); |
return; |
} |
- if (!IsInstantiationAllowed(i_isolate, &thrower, args[0], maybe_imports, |
- true)) { |
- auto maybe = resolver->Reject(context, Utils::ToLocal(thrower.Reify())); |
- CHECK(!maybe.IsNothing()); |
- return; |
- } |
i::Handle<i::JSPromise> promise = Utils::OpenHandle(*resolver->GetPromise()); |
if (HasBrand(first_arg, i::Handle<i::Symbol>(i_context->wasm_module_sym()))) { |
// WebAssembly.instantiate(module, imports) -> WebAssembly.Instance |