Index: src/handles.cc |
diff --git a/src/handles.cc b/src/handles.cc |
index e97dcad6dd770f250e0706081218e5111495ea1f..94293341c577af45cd952c537dfcbfc234fe82b4 100644 |
--- a/src/handles.cc |
+++ b/src/handles.cc |
@@ -45,8 +45,7 @@ namespace v8 { |
namespace internal { |
-int HandleScope::NumberOfHandles() { |
- Isolate* isolate = Isolate::Current(); |
+int HandleScope::NumberOfHandles(Isolate* isolate) { |
HandleScopeImplementer* impl = isolate->handle_scope_implementer(); |
int n = impl->blocks()->length(); |
if (n == 0) return 0; |
@@ -55,8 +54,7 @@ int HandleScope::NumberOfHandles() { |
} |
-Object** HandleScope::Extend() { |
- Isolate* isolate = Isolate::Current(); |
+Object** HandleScope::Extend(Isolate* isolate) { |
v8::ImplementationUtilities::HandleScopeData* current = |
isolate->handle_scope_data(); |
@@ -97,7 +95,6 @@ Object** HandleScope::Extend() { |
void HandleScope::DeleteExtensions(Isolate* isolate) { |
- ASSERT(isolate == Isolate::Current()); |
v8::ImplementationUtilities::HandleScopeData* current = |
isolate->handle_scope_data(); |
isolate->handle_scope_implementer()->DeleteExtensions(current->limit); |
@@ -112,21 +109,18 @@ void HandleScope::ZapRange(Object** start, Object** end) { |
} |
-Address HandleScope::current_level_address() { |
- return reinterpret_cast<Address>( |
- &Isolate::Current()->handle_scope_data()->level); |
+Address HandleScope::current_level_address(Isolate* isolate) { |
+ return reinterpret_cast<Address>(&isolate->handle_scope_data()->level); |
} |
-Address HandleScope::current_next_address() { |
- return reinterpret_cast<Address>( |
- &Isolate::Current()->handle_scope_data()->next); |
+Address HandleScope::current_next_address(Isolate* isolate) { |
+ return reinterpret_cast<Address>(&isolate->handle_scope_data()->next); |
} |
-Address HandleScope::current_limit_address() { |
- return reinterpret_cast<Address>( |
- &Isolate::Current()->handle_scope_data()->limit); |
+Address HandleScope::current_limit_address(Isolate* isolate) { |
+ return reinterpret_cast<Address>(&isolate->handle_scope_data()->limit); |
} |
@@ -287,9 +281,9 @@ Handle<Object> GetProperty(Handle<JSReceiver> obj, |
} |
-Handle<Object> GetProperty(Handle<Object> obj, |
+Handle<Object> GetProperty(Isolate* isolate, |
+ Handle<Object> obj, |
Handle<Object> key) { |
- Isolate* isolate = Isolate::Current(); |
CALL_HEAP_FUNCTION(isolate, |
Runtime::GetObjectProperty(isolate, obj, key), Object); |
} |
@@ -315,8 +309,8 @@ Handle<Object> SetPrototype(Handle<JSObject> obj, Handle<Object> value) { |
} |
-Handle<Object> LookupSingleCharacterStringFromCode(uint32_t index) { |
- Isolate* isolate = Isolate::Current(); |
+Handle<Object> LookupSingleCharacterStringFromCode(Isolate* isolate, |
+ uint32_t index) { |
CALL_HEAP_FUNCTION( |
isolate, |
isolate->heap()->LookupSingleCharacterStringFromCode(index), Object); |
@@ -371,7 +365,7 @@ Handle<JSValue> GetScriptWrapper(Handle<Script> script) { |
return Handle<JSValue>( |
reinterpret_cast<JSValue**>(script->wrapper()->foreign_address())); |
} |
- Isolate* isolate = Isolate::Current(); |
+ Isolate* isolate = script->GetIsolate(); |
// Construct a new script wrapper. |
isolate->counters()->script_wrappers()->Increment(); |
Handle<JSFunction> constructor = isolate->script_function(); |
@@ -612,7 +606,8 @@ Handle<Object> GetScriptNameOrSourceURL(Handle<Script> script) { |
isolate->factory()->LookupOneByteSymbol( |
STATIC_ASCII_VECTOR("nameOrSourceURL")); |
Handle<JSValue> script_wrapper = GetScriptWrapper(script); |
- Handle<Object> property = GetProperty(script_wrapper, |
+ Handle<Object> property = GetProperty(isolate, |
+ script_wrapper, |
name_or_source_url_key); |
ASSERT(property->IsJSFunction()); |
Handle<JSFunction> method = Handle<JSFunction>::cast(property); |
@@ -898,7 +893,6 @@ Handle<ObjectHashTable> PutIntoObjectHashTable(Handle<ObjectHashTable> table, |
DeferredHandleScope::DeferredHandleScope(Isolate* isolate) |
: impl_(isolate->handle_scope_implementer()) { |
- ASSERT(impl_->isolate() == Isolate::Current()); |
impl_->BeginDeferredScope(); |
v8::ImplementationUtilities::HandleScopeData* data = |
impl_->isolate()->handle_scope_data(); |