| Index: src/arm64/code-stubs-arm64.cc
|
| diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc
|
| index a9b647ca80095acce040ac6a3823dc16dae6ea48..d34a0504357cc79daeb185a2fb9fccd458faa372 100644
|
| --- a/src/arm64/code-stubs-arm64.cc
|
| +++ b/src/arm64/code-stubs-arm64.cc
|
| @@ -3878,6 +3878,39 @@ void ToStringStub::Generate(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| +void ToNameStub::Generate(MacroAssembler* masm) {
|
| + // The ToName stub takes one argument in x0.
|
| + Label is_number;
|
| + __ JumpIfSmi(x0, &is_number);
|
| +
|
| + Label not_name;
|
| + STATIC_ASSERT(FIRST_NAME_TYPE == FIRST_TYPE);
|
| + __ JumpIfObjectType(x0, x1, x1, LAST_NAME_TYPE, ¬_name, hi);
|
| + // x0: receiver
|
| + // x1: receiver instance type
|
| + __ Ret();
|
| + __ Bind(¬_name);
|
| +
|
| + Label not_heap_number;
|
| + __ Cmp(x1, HEAP_NUMBER_TYPE);
|
| + __ B(ne, ¬_heap_number);
|
| + __ Bind(&is_number);
|
| + NumberToStringStub stub(isolate());
|
| + __ TailCallStub(&stub);
|
| + __ Bind(¬_heap_number);
|
| +
|
| + Label not_oddball;
|
| + __ Cmp(x1, ODDBALL_TYPE);
|
| + __ B(ne, ¬_oddball);
|
| + __ Ldr(x0, FieldMemOperand(x0, Oddball::kToStringOffset));
|
| + __ Ret();
|
| + __ Bind(¬_oddball);
|
| +
|
| + __ Push(x0); // Push argument.
|
| + __ TailCallRuntime(Runtime::kToName);
|
| +}
|
| +
|
| +
|
| void StringHelper::GenerateFlatOneByteStringEquals(
|
| MacroAssembler* masm, Register left, Register right, Register scratch1,
|
| Register scratch2, Register scratch3) {
|
|
|