OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <memory> | 5 #include <memory> |
6 | 6 |
7 #include "src/assembler-inl.h" | 7 #include "src/assembler-inl.h" |
8 #include "src/base/adapters.h" | 8 #include "src/base/adapters.h" |
9 #include "src/base/atomic-utils.h" | 9 #include "src/base/atomic-utils.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 2665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2676 return helper.Build(); | 2676 return helper.Build(); |
2677 } | 2677 } |
2678 | 2678 |
2679 namespace { | 2679 namespace { |
2680 | 2680 |
2681 void RejectPromise(Isolate* isolate, ErrorThrower* thrower, | 2681 void RejectPromise(Isolate* isolate, ErrorThrower* thrower, |
2682 Handle<JSPromise> promise) { | 2682 Handle<JSPromise> promise) { |
2683 v8::Local<v8::Promise::Resolver> resolver = | 2683 v8::Local<v8::Promise::Resolver> resolver = |
2684 v8::Utils::PromiseToLocal(promise).As<v8::Promise::Resolver>(); | 2684 v8::Utils::PromiseToLocal(promise).As<v8::Promise::Resolver>(); |
2685 Handle<Context> context(isolate->context(), isolate); | 2685 Handle<Context> context(isolate->context(), isolate); |
2686 resolver->Reject(v8::Utils::ToLocal(context), | 2686 auto maybe = resolver->Reject(v8::Utils::ToLocal(context), |
2687 v8::Utils::ToLocal(thrower->Reify())); | 2687 v8::Utils::ToLocal(thrower->Reify())); |
| 2688 CHECK(!maybe.IsNothing()); |
2688 } | 2689 } |
2689 | 2690 |
2690 void ResolvePromise(Isolate* isolate, Handle<JSPromise> promise, | 2691 void ResolvePromise(Isolate* isolate, Handle<JSPromise> promise, |
2691 Handle<Object> result) { | 2692 Handle<Object> result) { |
2692 v8::Local<v8::Promise::Resolver> resolver = | 2693 v8::Local<v8::Promise::Resolver> resolver = |
2693 v8::Utils::PromiseToLocal(promise).As<v8::Promise::Resolver>(); | 2694 v8::Utils::PromiseToLocal(promise).As<v8::Promise::Resolver>(); |
2694 Handle<Context> context(isolate->context(), isolate); | 2695 Handle<Context> context(isolate->context(), isolate); |
2695 resolver->Resolve(v8::Utils::ToLocal(context), v8::Utils::ToLocal(result)); | 2696 auto maybe = resolver->Resolve(v8::Utils::ToLocal(context), |
| 2697 v8::Utils::ToLocal(result)); |
| 2698 CHECK(!maybe.IsNothing()); |
2696 } | 2699 } |
2697 | 2700 |
2698 } // namespace | 2701 } // namespace |
2699 | 2702 |
2700 void wasm::AsyncCompile(Isolate* isolate, Handle<JSPromise> promise, | 2703 void wasm::AsyncCompile(Isolate* isolate, Handle<JSPromise> promise, |
2701 const ModuleWireBytes& bytes) { | 2704 const ModuleWireBytes& bytes) { |
2702 ErrorThrower thrower(isolate, nullptr); | 2705 ErrorThrower thrower(isolate, nullptr); |
2703 MaybeHandle<WasmModuleObject> module_object = | 2706 MaybeHandle<WasmModuleObject> module_object = |
2704 SyncCompile(isolate, &thrower, bytes); | 2707 SyncCompile(isolate, &thrower, bytes); |
2705 if (thrower.error()) { | 2708 if (thrower.error()) { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2752 Handle<String> module_property_name = | 2755 Handle<String> module_property_name = |
2753 isolate->factory()->InternalizeUtf8String("module"); | 2756 isolate->factory()->InternalizeUtf8String("module"); |
2754 Handle<String> instance_property_name = | 2757 Handle<String> instance_property_name = |
2755 isolate->factory()->InternalizeUtf8String("instance"); | 2758 isolate->factory()->InternalizeUtf8String("instance"); |
2756 JSObject::AddProperty(ret, module_property_name, module, NONE); | 2759 JSObject::AddProperty(ret, module_property_name, module, NONE); |
2757 JSObject::AddProperty(ret, instance_property_name, | 2760 JSObject::AddProperty(ret, instance_property_name, |
2758 instance_object.ToHandleChecked(), NONE); | 2761 instance_object.ToHandleChecked(), NONE); |
2759 | 2762 |
2760 ResolvePromise(isolate, promise, ret); | 2763 ResolvePromise(isolate, promise, ret); |
2761 } | 2764 } |
OLD | NEW |