diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-06-12 10:39:12 +0200 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-06-20 10:50:52 +0200 |
commit | 8f907b6baf59fe08c8f7cbc279ea7dec71f42c8c (patch) | |
tree | 3825a95982c383080f2956ed0fcb44b6d2558120 /deps/v8/src/builtins | |
parent | f40caf728247ce78a1fe0a0673c4893fe299fafc (diff) | |
download | android-node-v8-8f907b6baf59fe08c8f7cbc279ea7dec71f42c8c.tar.gz android-node-v8-8f907b6baf59fe08c8f7cbc279ea7dec71f42c8c.tar.bz2 android-node-v8-8f907b6baf59fe08c8f7cbc279ea7dec71f42c8c.zip |
deps: update V8 to 5.9.211.37
PR-URL: https://github.com/nodejs/node/pull/13631
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'deps/v8/src/builtins')
-rw-r--r-- | deps/v8/src/builtins/builtins-promise-gen.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/deps/v8/src/builtins/builtins-promise-gen.cc b/deps/v8/src/builtins/builtins-promise-gen.cc index b1412eb7cd..1b236ec97c 100644 --- a/deps/v8/src/builtins/builtins-promise-gen.cc +++ b/deps/v8/src/builtins/builtins-promise-gen.cc @@ -106,6 +106,10 @@ Node* PromiseBuiltinsAssembler::NewPromiseCapability(Node* context, debug_event = TrueConstant(); } + Label if_not_constructor(this, Label::kDeferred); + GotoIf(TaggedIsSmi(constructor), &if_not_constructor); + GotoIfNot(IsConstructorMap(LoadMap(constructor)), &if_not_constructor); + Node* native_context = LoadNativeContext(context); Node* map = LoadRoot(Heap::kJSPromiseCapabilityMapRootIndex); @@ -189,6 +193,13 @@ Node* PromiseBuiltinsAssembler::NewPromiseCapability(Node* context, Unreachable(); } + BIND(&if_not_constructor); + { + Node* const message_id = SmiConstant(MessageTemplate::kNotConstructor); + CallRuntime(Runtime::kThrowTypeError, context, message_id, constructor); + Unreachable(); + } + BIND(&out); return var_result.value(); } @@ -312,6 +323,7 @@ Node* PromiseBuiltinsAssembler::SpeciesConstructor(Node* context, Node* object, // 7. If IsConstructor(S) is true, return S. Label throw_error(this); + GotoIf(TaggedIsSmi(species), &throw_error); Node* species_bitfield = LoadMapBitField(LoadMap(species)); GotoIfNot(Word32Equal(Word32And(species_bitfield, Int32Constant((1 << Map::kIsConstructor))), |