Index: src/arguments.h |
diff --git a/src/arguments.h b/src/arguments.h |
index e13ddc9ec83f0f69e1bdb53d00a18ca9b5522310..b2608e56cc0fe2ab7211ca475decc7c7c8d18f1f 100644 |
--- a/src/arguments.h |
+++ b/src/arguments.h |
@@ -253,6 +253,10 @@ class PropertyCallbackArguments |
values[T::kHolderIndex] = holder; |
values[T::kDataIndex] = data; |
values[T::kIsolateIndex] = reinterpret_cast<Object*>(isolate); |
+ // Here the hole is set as default value. |
+ // It cannot escape into js as it's remove in Call below. |
+ values[T::kReturnValueDefaultValueIndex] = |
+ isolate->heap()->the_hole_value(); |
values[T::kReturnValueIndex] = isolate->heap()->the_hole_value(); |
ASSERT(values[T::kHolderIndex]->IsHeapObject()); |
ASSERT(values[T::kIsolateIndex]->IsSmi()); |
@@ -313,6 +317,10 @@ class FunctionCallbackArguments |
values[T::kCalleeIndex] = callee; |
values[T::kHolderIndex] = holder; |
values[T::kIsolateIndex] = reinterpret_cast<internal::Object*>(isolate); |
+ // Here the hole is set as default value. |
+ // It cannot escape into js as it's remove in Call below. |
+ values[T::kReturnValueDefaultValueIndex] = |
+ isolate->heap()->the_hole_value(); |
values[T::kReturnValueIndex] = isolate->heap()->the_hole_value(); |
ASSERT(values[T::kCalleeIndex]->IsJSFunction()); |
ASSERT(values[T::kHolderIndex]->IsHeapObject()); |