Index: src/mips/builtins-mips.cc |
diff --git a/src/mips/builtins-mips.cc b/src/mips/builtins-mips.cc |
index f32b779578fa906d105b9f56259e82c17db9c0e9..75c459f405c7ff6e5213123aabffa93c1bcea4ed 100644 |
--- a/src/mips/builtins-mips.cc |
+++ b/src/mips/builtins-mips.cc |
@@ -1072,9 +1072,13 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
// If the type of the result (stored in its map) is less than |
// FIRST_SPEC_OBJECT_TYPE, it is not an object in the ECMA sense. |
- __ GetObjectType(v0, a3, a3); |
+ __ GetObjectType(v0, a1, a3); |
__ Branch(&exit, greater_equal, a3, Operand(FIRST_SPEC_OBJECT_TYPE)); |
+ // Symbols are "objects". |
+ __ lbu(a3, FieldMemOperand(a1, Map::kInstanceTypeOffset)); |
+ __ Branch(&exit, eq, a3, Operand(SYMBOL_TYPE)); |
+ |
// Throw away the result of the constructor invocation and use the |
// on-stack receiver as the result. |
__ bind(&use_receiver); |