| Index: src/builtins/builtins-conversion.cc
|
| diff --git a/src/builtins/builtins-conversion.cc b/src/builtins/builtins-conversion.cc
|
| index 0d04a02e241132e87aaea3ffb17add337002e901..625ad87f7623a293d36b71ed1b518578691688cb 100644
|
| --- a/src/builtins/builtins-conversion.cc
|
| +++ b/src/builtins/builtins-conversion.cc
|
| @@ -110,35 +110,13 @@ void Builtins::Generate_NonPrimitiveToPrimitive_String(
|
| }
|
|
|
| void Builtins::Generate_StringToNumber(CodeStubAssembler* assembler) {
|
| - typedef CodeStubAssembler::Label Label;
|
| typedef compiler::Node Node;
|
| typedef TypeConversionDescriptor Descriptor;
|
|
|
| Node* input = assembler->Parameter(Descriptor::kArgument);
|
| Node* context = assembler->Parameter(Descriptor::kContext);
|
|
|
| - Label runtime(assembler);
|
| -
|
| - // Check if string has a cached array index.
|
| - Node* hash = assembler->LoadNameHashField(input);
|
| - Node* bit = assembler->Word32And(
|
| - hash, assembler->Int32Constant(String::kContainsCachedArrayIndexMask));
|
| - assembler->GotoIf(assembler->Word32NotEqual(bit, assembler->Int32Constant(0)),
|
| - &runtime);
|
| -
|
| - assembler->Return(assembler->SmiTag(
|
| - assembler->BitFieldDecode<String::ArrayIndexValueBits>(hash)));
|
| -
|
| - assembler->Bind(&runtime);
|
| - {
|
| - // Note: We cannot tail call to the runtime here, as js-to-wasm
|
| - // trampolines also use this code currently, and they declare all
|
| - // outgoing parameters as untagged, while we would push a tagged
|
| - // object here.
|
| - Node* result =
|
| - assembler->CallRuntime(Runtime::kStringToNumber, context, input);
|
| - assembler->Return(result);
|
| - }
|
| + assembler->Return(assembler->StringToNumber(context, input));
|
| }
|
|
|
| // ES6 section 7.1.3 ToNumber ( argument )
|
| @@ -183,9 +161,7 @@ void Builtins::Generate_NonNumberToNumber(CodeStubAssembler* assembler) {
|
| assembler->Bind(&if_inputisstring);
|
| {
|
| // The {input} is a String, use the fast stub to convert it to a Number.
|
| - // TODO(bmeurer): Consider inlining the StringToNumber logic here.
|
| - Callable callable = CodeFactory::StringToNumber(assembler->isolate());
|
| - assembler->TailCallStub(callable, context, input);
|
| + assembler->Return(assembler->StringToNumber(context, input));
|
| }
|
|
|
| assembler->Bind(&if_inputisoddball);
|
|
|