| Index: src/code-stubs.cc
|
| diff --git a/src/code-stubs.cc b/src/code-stubs.cc
|
| index c663cd8878944431daf67e8a20a43e8264fb208b..a5dae551e7bb047d029a156107cefec16e194335 100644
|
| --- a/src/code-stubs.cc
|
| +++ b/src/code-stubs.cc
|
| @@ -522,10 +522,8 @@ SIMD128_TYPES(SIMD128_GEN_ASM)
|
|
|
| void StringLengthStub::GenerateAssembly(CodeStubAssembler* assembler) const {
|
| compiler::Node* value = assembler->Parameter(0);
|
| - compiler::Node* string =
|
| - assembler->LoadObjectField(value, JSValue::kValueOffset);
|
| - compiler::Node* result =
|
| - assembler->LoadObjectField(string, String::kLengthOffset);
|
| + compiler::Node* string = assembler->LoadJSValueValue(value);
|
| + compiler::Node* result = assembler->LoadStringLength(string);
|
| assembler->Return(result);
|
| }
|
|
|
| @@ -3397,8 +3395,8 @@ void GenerateStringRelationalComparison(CodeStubAssembler* assembler,
|
| assembler->Bind(&if_bothonebyteseqstrings);
|
| {
|
| // Load the length of {lhs} and {rhs}.
|
| - Node* lhs_length = assembler->LoadObjectField(lhs, String::kLengthOffset);
|
| - Node* rhs_length = assembler->LoadObjectField(rhs, String::kLengthOffset);
|
| + Node* lhs_length = assembler->LoadStringLength(lhs);
|
| + Node* rhs_length = assembler->LoadStringLength(rhs);
|
|
|
| // Determine the minimum length.
|
| Node* length = assembler->SmiMin(lhs_length, rhs_length);
|
| @@ -3569,8 +3567,8 @@ void GenerateStringEqual(CodeStubAssembler* assembler, ResultMode mode) {
|
| // The {lhs} and {rhs} don't refer to the exact same String object.
|
|
|
| // Load the length of {lhs} and {rhs}.
|
| - Node* lhs_length = assembler->LoadObjectField(lhs, String::kLengthOffset);
|
| - Node* rhs_length = assembler->LoadObjectField(rhs, String::kLengthOffset);
|
| + Node* lhs_length = assembler->LoadStringLength(lhs);
|
| + Node* rhs_length = assembler->LoadStringLength(rhs);
|
|
|
| // Check if the lengths of {lhs} and {rhs} are equal.
|
| Label if_lengthisequal(assembler), if_lengthisnotequal(assembler);
|
|
|