Index: src/ia32/code-stubs-ia32.cc |
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc |
index 0b7fc8ad5776f728ae388c428123b425137799fe..90e3672a91d8315adb4074d3c2049c9dfa74a8fa 100644 |
--- a/src/ia32/code-stubs-ia32.cc |
+++ b/src/ia32/code-stubs-ia32.cc |
@@ -2760,6 +2760,12 @@ void InstanceofStub::Generate(MacroAssembler* masm) { |
} |
__ mov(scratch, Operand(scratch, kDeltaToCmpImmediate)); |
__ mov(Operand(scratch, 0), map); |
+ __ push(map); |
+ // Scratch points at the cell payload. Calculate the start of the object. |
+ __ sub(scratch, Immediate(Cell::kValueOffset - 1)); |
+ __ RecordWriteField(scratch, Cell::kValueOffset, map, function, |
+ kDontSaveFPRegs, OMIT_REMEMBERED_SET, OMIT_SMI_CHECK); |
+ __ pop(map); |
} |
// Loop through the prototype chain of the object looking for the function |