aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2017-06-12 10:39:12 +0200
committerMichaël Zasso <targos@protonmail.com>2017-06-20 10:50:52 +0200
commit8f907b6baf59fe08c8f7cbc279ea7dec71f42c8c (patch)
tree3825a95982c383080f2956ed0fcb44b6d2558120 /deps/v8/src/builtins
parentf40caf728247ce78a1fe0a0673c4893fe299fafc (diff)
downloadandroid-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.cc12
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))),