Chromium Code Reviews| Index: src/builtins/builtins-conversion.cc |
| diff --git a/src/builtins/builtins-conversion.cc b/src/builtins/builtins-conversion.cc |
| index 0d04a02e241132e87aaea3ffb17add337002e901..5eb2931d05b9e6bf4c4a9d420650db89384a0485 100644 |
| --- a/src/builtins/builtins-conversion.cc |
| +++ b/src/builtins/builtins-conversion.cc |
| @@ -110,35 +110,10 @@ 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); |
|
Benedikt Meurer
2016/09/02 04:23:47
Nit: Please leave the explicit input/context assig
|
| - 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(assembler->Parameter(Descriptor::kContext), |
| + assembler->Parameter(Descriptor::kArgument))); |
| } |
| // ES6 section 7.1.3 ToNumber ( argument ) |
| @@ -183,9 +158,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); |