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); |