| Index: src/mips/full-codegen-mips.cc
|
| diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc
|
| index 4943a03a1a71922ed1f69b92b9f1b7bbd3bcb08d..d8909c9ddd4c536affd089f16c5e080986dcf8c9 100644
|
| --- a/src/mips/full-codegen-mips.cc
|
| +++ b/src/mips/full-codegen-mips.cc
|
| @@ -4052,6 +4052,10 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr,
|
| __ Branch(if_true, eq, v0, Operand(at));
|
| __ LoadRoot(at, Heap::kFalseValueRootIndex);
|
| Split(eq, v0, Operand(at), if_true, if_false, fall_through);
|
| + } else if (FLAG_harmony_typeof &&
|
| + check->Equals(isolate()->heap()->null_symbol())) {
|
| + __ LoadRoot(at, Heap::kNullValueRootIndex);
|
| + Split(eq, v0, Operand(at), if_true, if_false, fall_through);
|
| } else if (check->Equals(isolate()->heap()->undefined_symbol())) {
|
| __ LoadRoot(at, Heap::kUndefinedValueRootIndex);
|
| __ Branch(if_true, eq, v0, Operand(at));
|
| @@ -4069,8 +4073,10 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr,
|
|
|
| } else if (check->Equals(isolate()->heap()->object_symbol())) {
|
| __ JumpIfSmi(v0, if_false);
|
| - __ LoadRoot(at, Heap::kNullValueRootIndex);
|
| - __ Branch(if_true, eq, v0, Operand(at));
|
| + if (!FLAG_harmony_typeof) {
|
| + __ LoadRoot(at, Heap::kNullValueRootIndex);
|
| + __ Branch(if_true, eq, v0, Operand(at));
|
| + }
|
| // Check for JS objects => true.
|
| __ GetObjectType(v0, v0, a1);
|
| __ Branch(if_false, lt, a1, Operand(FIRST_NONCALLABLE_SPEC_OBJECT_TYPE));
|
|
|