| Index: src/wasm/wasm-js.cc
|
| diff --git a/src/wasm/wasm-js.cc b/src/wasm/wasm-js.cc
|
| index 6fde52b90bd67dcd54675268197d1b02bcd28ca2..72482388ed3099febfe994aa1b7a968270c3ab1a 100644
|
| --- a/src/wasm/wasm-js.cc
|
| +++ b/src/wasm/wasm-js.cc
|
| @@ -92,108 +92,6 @@ RawBuffer GetRawBufferSource(
|
| return {start, end};
|
| }
|
|
|
| -void VerifyModule(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| - HandleScope scope(args.GetIsolate());
|
| - i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
|
| - ErrorThrower thrower(isolate, "Wasm.verifyModule()");
|
| -
|
| - if (args.Length() < 1) {
|
| - thrower.TypeError("Argument 0 must be a buffer source");
|
| - return;
|
| - }
|
| - RawBuffer buffer = GetRawBufferSource(args[0], &thrower);
|
| - if (thrower.error()) return;
|
| -
|
| - internal::wasm::ModuleResult result = internal::wasm::DecodeWasmModule(
|
| - isolate, buffer.start, buffer.end, true, internal::wasm::kWasmOrigin);
|
| -
|
| - if (result.failed()) {
|
| - thrower.CompileFailed("", result);
|
| - }
|
| -
|
| - if (result.val) delete result.val;
|
| -}
|
| -
|
| -void VerifyFunction(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| - HandleScope scope(args.GetIsolate());
|
| - i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
|
| - ErrorThrower thrower(isolate, "Wasm.verifyFunction()");
|
| -
|
| - if (args.Length() < 1) {
|
| - thrower.TypeError("Argument 0 must be a buffer source");
|
| - return;
|
| - }
|
| - RawBuffer buffer = GetRawBufferSource(args[0], &thrower);
|
| - if (thrower.error()) return;
|
| -
|
| - internal::wasm::FunctionResult result;
|
| - {
|
| - // Verification of a single function shouldn't allocate.
|
| - i::DisallowHeapAllocation no_allocation;
|
| - i::Zone zone(isolate->allocator(), ZONE_NAME);
|
| - result = internal::wasm::DecodeWasmFunction(isolate, &zone, nullptr,
|
| - buffer.start, buffer.end);
|
| - }
|
| -
|
| - if (result.failed()) {
|
| - thrower.CompileFailed("", result);
|
| - }
|
| -
|
| - if (result.val) delete result.val;
|
| -}
|
| -
|
| -i::MaybeHandle<i::JSObject> InstantiateModule(
|
| - const v8::FunctionCallbackInfo<v8::Value>& args, const byte* start,
|
| - const byte* end, ErrorThrower* thrower) {
|
| - i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
|
| -
|
| - // Decode but avoid a redundant pass over function bodies for verification.
|
| - // Verification will happen during compilation.
|
| - i::Zone zone(isolate->allocator(), ZONE_NAME);
|
| - i::MaybeHandle<i::JSObject> module_object =
|
| - i::wasm::CreateModuleObjectFromBytes(
|
| - isolate, start, end, thrower, i::wasm::kWasmOrigin,
|
| - i::Handle<i::Script>::null(), nullptr, nullptr);
|
| - i::MaybeHandle<i::JSObject> object;
|
| - if (!module_object.is_null()) {
|
| - // Success. Instantiate the module and return the object.
|
| - i::Handle<i::JSObject> ffi = i::Handle<i::JSObject>::null();
|
| - if (args.Length() > 1 && args[1]->IsObject()) {
|
| - Local<Object> obj = Local<Object>::Cast(args[1]);
|
| - ffi = i::Handle<i::JSObject>::cast(v8::Utils::OpenHandle(*obj));
|
| - }
|
| -
|
| - i::Handle<i::JSArrayBuffer> memory = i::Handle<i::JSArrayBuffer>::null();
|
| - if (args.Length() > 2 && args[2]->IsArrayBuffer()) {
|
| - Local<Object> obj = Local<Object>::Cast(args[2]);
|
| - i::Handle<i::Object> mem_obj = v8::Utils::OpenHandle(*obj);
|
| - memory = i::Handle<i::JSArrayBuffer>(i::JSArrayBuffer::cast(*mem_obj));
|
| - }
|
| -
|
| - object = i::wasm::WasmModule::Instantiate(
|
| - isolate, thrower, module_object.ToHandleChecked(), ffi, memory);
|
| - if (!object.is_null()) {
|
| - args.GetReturnValue().Set(v8::Utils::ToLocal(object.ToHandleChecked()));
|
| - }
|
| - }
|
| - return object;
|
| -}
|
| -
|
| -void InstantiateModule(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| - HandleScope scope(args.GetIsolate());
|
| - i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
|
| - ErrorThrower thrower(isolate, "Wasm.instantiateModule()");
|
| -
|
| - if (args.Length() < 1) {
|
| - thrower.TypeError("Argument 0 must be a buffer source");
|
| - return;
|
| - }
|
| - RawBuffer buffer = GetRawBufferSource(args[0], &thrower);
|
| - if (buffer.start == nullptr) return;
|
| -
|
| - InstantiateModule(args, buffer.start, buffer.end, &thrower);
|
| -}
|
| -
|
| static i::MaybeHandle<i::JSObject> CreateModuleObject(
|
| v8::Isolate* isolate, const v8::Local<v8::Value> source,
|
| ErrorThrower* thrower) {
|
| @@ -877,44 +775,13 @@ void WasmJs::Install(Isolate* isolate, Handle<JSGlobalObject> global) {
|
| return;
|
| }
|
|
|
| - Factory* factory = isolate->factory();
|
| -
|
| // Setup wasm function map.
|
| Handle<Context> context(global->native_context(), isolate);
|
| InstallWasmMapsIfNeeded(isolate, context);
|
|
|
| - if (!FLAG_expose_wasm) {
|
| - return;
|
| - }
|
| -
|
| - // Bind the experimental "Wasm" object.
|
| - // TODO(rossberg, titzer): remove once it's no longer needed.
|
| - {
|
| - Handle<String> name = v8_str(isolate, "Wasm");
|
| - Handle<JSFunction> cons = factory->NewFunction(name);
|
| - JSFunction::SetInstancePrototype(
|
| - cons, Handle<Object>(context->initial_object_prototype(), isolate));
|
| - cons->shared()->set_instance_class_name(*name);
|
| - Handle<JSObject> wasm_object = factory->NewJSObject(cons, TENURED);
|
| - PropertyAttributes attributes = static_cast<PropertyAttributes>(DONT_ENUM);
|
| - JSObject::AddProperty(global, name, wasm_object, attributes);
|
| -
|
| - // Install functions on the WASM object.
|
| - InstallFunc(isolate, wasm_object, "verifyModule", VerifyModule);
|
| - InstallFunc(isolate, wasm_object, "verifyFunction", VerifyFunction);
|
| - InstallFunc(isolate, wasm_object, "instantiateModule", InstantiateModule);
|
| -
|
| - {
|
| - // Add the Wasm.experimentalVersion property.
|
| - Handle<String> name = v8_str(isolate, "experimentalVersion");
|
| - PropertyAttributes attributes =
|
| - static_cast<PropertyAttributes>(DONT_DELETE | READ_ONLY);
|
| - Handle<Smi> value =
|
| - Handle<Smi>(Smi::FromInt(wasm::kWasmVersion), isolate);
|
| - JSObject::AddProperty(wasm_object, name, value, attributes);
|
| - }
|
| + if (FLAG_expose_wasm) {
|
| + InstallWasmConstructors(isolate, global, context);
|
| }
|
| - InstallWasmConstructors(isolate, global, context);
|
| }
|
|
|
| void WasmJs::InstallWasmMapsIfNeeded(Isolate* isolate,
|
|
|