diff options
Diffstat (limited to 'deps/v8/src/builtins/builtins-conversion-gen.cc')
-rw-r--r-- | deps/v8/src/builtins/builtins-conversion-gen.cc | 37 |
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) { |