Index: src/ia32/stub-cache-ia32.cc |
diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc |
index 48d9e674549c08b21db7a3b0fbf454409d00bc7b..bab0435f38968a24e0f5d090a32ac428788ac316 100644 |
--- a/src/ia32/stub-cache-ia32.cc |
+++ b/src/ia32/stub-cache-ia32.cc |
@@ -816,8 +816,13 @@ bool StubCompiler::GenerateLoadCallback(JSObject* object, |
__ push(other); |
__ push(receiver); // receiver |
__ push(reg); // holder |
- __ mov(other, Immediate(callback_handle)); |
- __ push(FieldOperand(other, AccessorInfo::kDataOffset)); // data |
+ // Push data from AccessorInfo. |
+ if (Heap::InNewSpace(callback_handle->data())) { |
+ __ mov(other, Immediate(callback_handle)); |
+ __ push(FieldOperand(other, AccessorInfo::kDataOffset)); |
+ } else { |
+ __ push(Immediate(Handle<Object>(callback_handle->data()))); |
+ } |
__ push(name_reg); // name |
// Save a pointer to where we pushed the arguments pointer. |
// This will be passed as the const AccessorInfo& to the C++ callback. |