Index: src/apiutils.h |
diff --git a/src/apiutils.h b/src/apiutils.h |
index 68579af1b3e6fe9cc8af276338c78860e0f4fdde..71c0e1c2c4869c2e5a40eb933037368bca1d33e7 100644 |
--- a/src/apiutils.h |
+++ b/src/apiutils.h |
@@ -1,4 +1,4 @@ |
-// Copyright 2009 the V8 project authors. All rights reserved. |
+// Copyright 2012 the V8 project authors. All rights reserved. |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
// met: |
@@ -40,14 +40,17 @@ class ImplementationUtilities { |
} |
// Packs additional parameters for the NewArguments function. |implicit_args| |
- // is a pointer to the last element of 3-elements array controlled by GC. |
+ // is a pointer to the last element of 4-elements array controlled by GC. |
static void PrepareArgumentsData(internal::Object** implicit_args, |
+ internal::Isolate* isolate, |
internal::Object* data, |
internal::JSFunction* callee, |
internal::Object* holder) { |
implicit_args[v8::Arguments::kDataIndex] = data; |
implicit_args[v8::Arguments::kCalleeIndex] = callee; |
implicit_args[v8::Arguments::kHolderIndex] = holder; |
+ implicit_args[v8::Arguments::kIsolateIndex] = |
+ reinterpret_cast<internal::Object*>(isolate); |
} |
static v8::Arguments NewArguments(internal::Object** implicit_args, |
@@ -55,6 +58,8 @@ class ImplementationUtilities { |
bool is_construct_call) { |
ASSERT(implicit_args[v8::Arguments::kCalleeIndex]->IsJSFunction()); |
ASSERT(implicit_args[v8::Arguments::kHolderIndex]->IsHeapObject()); |
+ // The implicit isolate argument is not tagged and looks like a SMI. |
+ ASSERT(implicit_args[v8::Arguments::kIsolateIndex]->IsSmi()); |
return v8::Arguments(implicit_args, argv, argc, is_construct_call); |
} |