| Index: src/objects.cc
 | 
| diff --git a/src/objects.cc b/src/objects.cc
 | 
| index 452c1d62d5ec673f30d6e9cb4549c80ce80fba4e..2d917122d2edbf2dc62ddd840d93a52922a33ea7 100644
 | 
| --- a/src/objects.cc
 | 
| +++ b/src/objects.cc
 | 
| @@ -828,7 +828,8 @@ MaybeObject* Object::GetProperty(Object* receiver,
 | 
|                                   PropertyAttributes* attributes) {
 | 
|    // Make sure that the top context does not change when doing
 | 
|    // callbacks or interceptor calls.
 | 
| -  AssertNoContextChange ncc;
 | 
| +  AssertNoContextChangeWithHandleScope ncc;
 | 
| +
 | 
|    Isolate* isolate = name->GetIsolate();
 | 
|    Heap* heap = isolate->heap();
 | 
|  
 | 
| @@ -3878,9 +3879,10 @@ MaybeObject* JSObject::SetPropertyForResult(LookupResult* lookup,
 | 
|                                              StoreFromKeyed store_mode) {
 | 
|    Heap* heap = GetHeap();
 | 
|    Isolate* isolate = heap->isolate();
 | 
| +
 | 
|    // Make sure that the top context does not change when doing callbacks or
 | 
|    // interceptor calls.
 | 
| -  AssertNoContextChange ncc;
 | 
| +  AssertNoContextChangeWithHandleScope ncc;
 | 
|  
 | 
|    // Optimization for 2-byte strings often used as keys in a decompression
 | 
|    // dictionary.  We internalize these short keys to avoid constantly
 | 
| @@ -4039,7 +4041,7 @@ MaybeObject* JSObject::SetLocalPropertyIgnoreAttributes(
 | 
|      ExtensibilityCheck extensibility_check) {
 | 
|    // Make sure that the top context does not change when doing callbacks or
 | 
|    // interceptor calls.
 | 
| -  AssertNoContextChange ncc;
 | 
| +  AssertNoContextChangeWithHandleScope ncc;
 | 
|    Isolate* isolate = GetIsolate();
 | 
|    LookupResult lookup(isolate);
 | 
|    LocalLookup(name_raw, &lookup, true);
 | 
| @@ -4183,12 +4185,12 @@ PropertyAttributes JSObject::GetPropertyAttributeWithInterceptor(
 | 
|    if (name->IsSymbol()) return ABSENT;
 | 
|  
 | 
|    Isolate* isolate = GetIsolate();
 | 
| +  HandleScope scope(isolate);
 | 
|  
 | 
|    // Make sure that the top context does not change when doing
 | 
|    // callbacks or interceptor calls.
 | 
|    AssertNoContextChange ncc;
 | 
|  
 | 
| -  HandleScope scope(isolate);
 | 
|    Handle<InterceptorInfo> interceptor(GetNamedInterceptor());
 | 
|    Handle<JSObject> receiver_handle(receiver);
 | 
|    Handle<JSObject> holder_handle(this);
 | 
| @@ -4318,10 +4320,12 @@ PropertyAttributes JSObject::GetElementAttributeWithReceiver(
 | 
|  PropertyAttributes JSObject::GetElementAttributeWithInterceptor(
 | 
|      JSReceiver* receiver, uint32_t index, bool continue_search) {
 | 
|    Isolate* isolate = GetIsolate();
 | 
| +  HandleScope scope(isolate);
 | 
| +
 | 
|    // Make sure that the top context does not change when doing
 | 
|    // callbacks or interceptor calls.
 | 
|    AssertNoContextChange ncc;
 | 
| -  HandleScope scope(isolate);
 | 
| +
 | 
|    Handle<InterceptorInfo> interceptor(GetIndexedInterceptor());
 | 
|    Handle<JSReceiver> hreceiver(receiver);
 | 
|    Handle<JSObject> holder(this);
 | 
| @@ -5030,10 +5034,12 @@ Handle<Object> JSObject::DeletePropertyWithInterceptor(Handle<JSObject> object,
 | 
|  MaybeObject* JSObject::DeleteElementWithInterceptor(uint32_t index) {
 | 
|    Isolate* isolate = GetIsolate();
 | 
|    Heap* heap = isolate->heap();
 | 
| +  HandleScope scope(isolate);
 | 
| +
 | 
|    // Make sure that the top context does not change when doing
 | 
|    // callbacks or interceptor calls.
 | 
|    AssertNoContextChange ncc;
 | 
| -  HandleScope scope(isolate);
 | 
| +
 | 
|    Handle<InterceptorInfo> interceptor(GetIndexedInterceptor());
 | 
|    if (interceptor->deleter()->IsUndefined()) return heap->false_value();
 | 
|    v8::IndexedPropertyDeleterCallback deleter =
 | 
| @@ -6144,7 +6150,7 @@ void JSObject::DefineAccessor(Handle<JSObject> object,
 | 
|  
 | 
|    // Make sure that the top context does not change when doing callbacks or
 | 
|    // interceptor calls.
 | 
| -  AssertNoContextChange ncc;
 | 
| +  AssertNoContextChangeWithHandleScope ncc;
 | 
|  
 | 
|    // Try to flatten before operating on the string.
 | 
|    if (name->IsString()) String::cast(*name)->TryFlatten();
 | 
| @@ -6327,7 +6333,7 @@ MaybeObject* JSObject::DefineAccessor(AccessorInfo* info) {
 | 
|  
 | 
|    // Make sure that the top context does not change when doing callbacks or
 | 
|    // interceptor calls.
 | 
| -  AssertNoContextChange ncc;
 | 
| +  AssertNoContextChangeWithHandleScope ncc;
 | 
|  
 | 
|    // Try to flatten before operating on the string.
 | 
|    if (name->IsString()) String::cast(name)->TryFlatten();
 | 
| @@ -6395,7 +6401,7 @@ MaybeObject* JSObject::LookupAccessor(Name* name, AccessorComponent component) {
 | 
|  
 | 
|    // Make sure that the top context does not change when doing callbacks or
 | 
|    // interceptor calls.
 | 
| -  AssertNoContextChange ncc;
 | 
| +  AssertNoContextChangeWithHandleScope ncc;
 | 
|  
 | 
|    // Check access rights if needed.
 | 
|    if (IsAccessCheckNeeded() &&
 | 
| @@ -11543,10 +11549,12 @@ MaybeObject* JSObject::SetElementWithInterceptor(uint32_t index,
 | 
|                                                   bool check_prototype,
 | 
|                                                   SetPropertyMode set_mode) {
 | 
|    Isolate* isolate = GetIsolate();
 | 
| +  HandleScope scope(isolate);
 | 
| +
 | 
|    // Make sure that the top context does not change when doing
 | 
|    // callbacks or interceptor calls.
 | 
|    AssertNoContextChange ncc;
 | 
| -  HandleScope scope(isolate);
 | 
| +
 | 
|    Handle<InterceptorInfo> interceptor(GetIndexedInterceptor());
 | 
|    Handle<JSObject> this_handle(this);
 | 
|    Handle<Object> value_handle(value, isolate);
 | 
| @@ -12553,10 +12561,12 @@ MaybeObject* JSArray::JSArrayUpdateLengthFromIndex(uint32_t index,
 | 
|  MaybeObject* JSObject::GetElementWithInterceptor(Object* receiver,
 | 
|                                                   uint32_t index) {
 | 
|    Isolate* isolate = GetIsolate();
 | 
| +  HandleScope scope(isolate);
 | 
| +
 | 
|    // Make sure that the top context does not change when doing
 | 
|    // callbacks or interceptor calls.
 | 
|    AssertNoContextChange ncc;
 | 
| -  HandleScope scope(isolate);
 | 
| +
 | 
|    Handle<InterceptorInfo> interceptor(GetIndexedInterceptor(), isolate);
 | 
|    Handle<Object> this_handle(receiver, isolate);
 | 
|    Handle<JSObject> holder_handle(this, isolate);
 | 
| 
 |