summaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/builtins-conversion-gen.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/builtins/builtins-conversion-gen.cc')
-rw-r--r--deps/v8/src/builtins/builtins-conversion-gen.cc37
1 files changed, 30 insertions, 7 deletions
diff --git a/deps/v8/src/builtins/builtins-conversion-gen.cc b/deps/v8/src/builtins/builtins-conversion-gen.cc
index c61ea70cf4..823e6ca937 100644
--- a/deps/v8/src/builtins/builtins-conversion-gen.cc
+++ b/deps/v8/src/builtins/builtins-conversion-gen.cc
@@ -33,9 +33,7 @@ void ConversionBuiltinsAssembler::Generate_NonPrimitiveToPrimitive(
// Check if {exotic_to_prim} is neither null nor undefined.
Label ordinary_to_primitive(this);
- GotoIf(WordEqual(exotic_to_prim, NullConstant()), &ordinary_to_primitive);
- GotoIf(WordEqual(exotic_to_prim, UndefinedConstant()),
- &ordinary_to_primitive);
+ GotoIf(IsNullOrUndefined(exotic_to_prim), &ordinary_to_primitive);
{
// Invoke the {exotic_to_prim} method on the {input} with a string
// representation of the {hint}.
@@ -121,6 +119,22 @@ TF_BUILTIN(NonNumberToNumber, CodeStubAssembler) {
Return(NonNumberToNumber(context, input));
}
+TF_BUILTIN(NonNumberToNumeric, CodeStubAssembler) {
+ Node* context = Parameter(Descriptor::kContext);
+ Node* input = Parameter(Descriptor::kArgument);
+
+ Return(NonNumberToNumeric(context, input));
+}
+
+TF_BUILTIN(ToNumeric, CodeStubAssembler) {
+ Node* context = Parameter(Descriptor::kContext);
+ Node* input = Parameter(Descriptor::kArgument);
+
+ Return(Select(IsNumber(input), [=] { return input; },
+ [=] { return NonNumberToNumeric(context, input); },
+ MachineRepresentation::kTagged));
+}
+
// ES6 section 7.1.3 ToNumber ( argument )
TF_BUILTIN(ToNumber, CodeStubAssembler) {
Node* context = Parameter(Descriptor::kContext);
@@ -129,6 +143,15 @@ TF_BUILTIN(ToNumber, CodeStubAssembler) {
Return(ToNumber(context, input));
}
+// ES section #sec-tostring-applied-to-the-number-type
+TF_BUILTIN(NumberToString, CodeStubAssembler) {
+ Node* context = Parameter(Descriptor::kContext);
+ Node* input = Parameter(Descriptor::kArgument);
+
+ Return(NumberToString(context, input));
+}
+
+// ES section #sec-tostring
TF_BUILTIN(ToString, CodeStubAssembler) {
Node* context = Parameter(Descriptor::kContext);
Node* input = Parameter(Descriptor::kArgument);
@@ -215,10 +238,10 @@ TF_BUILTIN(ToBoolean, CodeStubAssembler) {
BranchIfToBooleanIsTrue(value, &return_true, &return_false);
BIND(&return_true);
- Return(BooleanConstant(true));
+ Return(TrueConstant());
BIND(&return_false);
- Return(BooleanConstant(false));
+ Return(FalseConstant());
}
// ES6 section 7.1.2 ToBoolean ( argument )
@@ -231,10 +254,10 @@ TF_BUILTIN(ToBooleanLazyDeoptContinuation, CodeStubAssembler) {
BranchIfToBooleanIsTrue(value, &return_true, &return_false);
BIND(&return_true);
- Return(BooleanConstant(true));
+ Return(TrueConstant());
BIND(&return_false);
- Return(BooleanConstant(false));
+ Return(FalseConstant());
}
TF_BUILTIN(ToLength, CodeStubAssembler) {