| Index: src/stub-cache.cc
|
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc
|
| index cd198e2f07f18ea0fff30f5ca2db0ceec42ceac6..435e71d1614491c7a1a9238ad4a056c37577fb27 100644
|
| --- a/src/stub-cache.cc
|
| +++ b/src/stub-cache.cc
|
| @@ -64,7 +64,7 @@ Code* StubCache::Set(String* name, Map* map, Code* code) {
|
|
|
| // Validate that the name does not move on scavenge, and that we
|
| // can use identity checks instead of string equality checks.
|
| - ASSERT(!isolate_->heap()->InNewSpace(name));
|
| + ASSERT(!heap()->InNewSpace(name));
|
| ASSERT(name->IsSymbol());
|
|
|
| // The state bits are not important to the hash function because
|
| @@ -108,10 +108,10 @@ MaybeObject* StubCache::ComputeLoadNonexistent(String* name,
|
| // there are global objects involved, we need to check global
|
| // property cells in the stub and therefore the stub will be
|
| // specific to the name.
|
| - String* cache_name = isolate_->heap()->empty_string();
|
| + String* cache_name = heap()->empty_string();
|
| if (receiver->IsGlobalObject()) cache_name = name;
|
| JSObject* last = receiver;
|
| - while (last->GetPrototype() != isolate_->heap()->null_value()) {
|
| + while (last->GetPrototype() != heap()->null_value()) {
|
| last = JSObject::cast(last->GetPrototype());
|
| if (last->IsGlobalObject()) cache_name = name;
|
| }
|
| @@ -466,7 +466,7 @@ MaybeObject* StubCache::ComputeKeyedLoadSpecialized(JSObject* receiver) {
|
| // keyed loads that are not array elements go through a generic builtin stub.
|
| Code::Flags flags =
|
| Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC, NORMAL);
|
| - String* name = isolate_->heap()->KeyedLoadSpecialized_symbol();
|
| + String* name = heap()->KeyedLoadSpecialized_symbol();
|
| Object* code = receiver->map()->FindInCodeCache(name, flags);
|
| if (code->IsUndefined()) {
|
| KeyedLoadStubCompiler compiler;
|
| @@ -518,7 +518,7 @@ MaybeObject* StubCache::ComputeKeyedStoreSpecialized(
|
| StrictModeFlag strict_mode) {
|
| Code::Flags flags =
|
| Code::ComputeMonomorphicFlags(Code::KEYED_STORE_IC, NORMAL, strict_mode);
|
| - String* name = isolate_->heap()->KeyedStoreSpecialized_symbol();
|
| + String* name = heap()->KeyedStoreSpecialized_symbol();
|
| Object* code = receiver->map()->FindInCodeCache(name, flags);
|
| if (code->IsUndefined()) {
|
| KeyedStoreStubCompiler compiler(strict_mode);
|
| @@ -563,26 +563,27 @@ ExternalArrayType ElementsKindToExternalArrayType(JSObject::ElementsKind kind) {
|
| }
|
| }
|
|
|
| -String* ExternalArrayTypeToStubName(ExternalArrayType array_type,
|
| +String* ExternalArrayTypeToStubName(Heap* heap,
|
| + ExternalArrayType array_type,
|
| bool is_store) {
|
| if (is_store) {
|
| switch (array_type) {
|
| case kExternalByteArray:
|
| - return HEAP->KeyedStoreExternalByteArray_symbol();
|
| + return heap->KeyedStoreExternalByteArray_symbol();
|
| case kExternalUnsignedByteArray:
|
| - return HEAP->KeyedStoreExternalUnsignedByteArray_symbol();
|
| + return heap->KeyedStoreExternalUnsignedByteArray_symbol();
|
| case kExternalShortArray:
|
| - return HEAP->KeyedStoreExternalShortArray_symbol();
|
| + return heap->KeyedStoreExternalShortArray_symbol();
|
| case kExternalUnsignedShortArray:
|
| - return HEAP->KeyedStoreExternalUnsignedShortArray_symbol();
|
| + return heap->KeyedStoreExternalUnsignedShortArray_symbol();
|
| case kExternalIntArray:
|
| - return HEAP->KeyedStoreExternalIntArray_symbol();
|
| + return heap->KeyedStoreExternalIntArray_symbol();
|
| case kExternalUnsignedIntArray:
|
| - return HEAP->KeyedStoreExternalUnsignedIntArray_symbol();
|
| + return heap->KeyedStoreExternalUnsignedIntArray_symbol();
|
| case kExternalFloatArray:
|
| - return HEAP->KeyedStoreExternalFloatArray_symbol();
|
| + return heap->KeyedStoreExternalFloatArray_symbol();
|
| case kExternalPixelArray:
|
| - return HEAP->KeyedStoreExternalPixelArray_symbol();
|
| + return heap->KeyedStoreExternalPixelArray_symbol();
|
| default:
|
| UNREACHABLE();
|
| return NULL;
|
| @@ -590,21 +591,21 @@ String* ExternalArrayTypeToStubName(ExternalArrayType array_type,
|
| } else {
|
| switch (array_type) {
|
| case kExternalByteArray:
|
| - return HEAP->KeyedLoadExternalByteArray_symbol();
|
| + return heap->KeyedLoadExternalByteArray_symbol();
|
| case kExternalUnsignedByteArray:
|
| - return HEAP->KeyedLoadExternalUnsignedByteArray_symbol();
|
| + return heap->KeyedLoadExternalUnsignedByteArray_symbol();
|
| case kExternalShortArray:
|
| - return HEAP->KeyedLoadExternalShortArray_symbol();
|
| + return heap->KeyedLoadExternalShortArray_symbol();
|
| case kExternalUnsignedShortArray:
|
| - return HEAP->KeyedLoadExternalUnsignedShortArray_symbol();
|
| + return heap->KeyedLoadExternalUnsignedShortArray_symbol();
|
| case kExternalIntArray:
|
| - return HEAP->KeyedLoadExternalIntArray_symbol();
|
| + return heap->KeyedLoadExternalIntArray_symbol();
|
| case kExternalUnsignedIntArray:
|
| - return HEAP->KeyedLoadExternalUnsignedIntArray_symbol();
|
| + return heap->KeyedLoadExternalUnsignedIntArray_symbol();
|
| case kExternalFloatArray:
|
| - return HEAP->KeyedLoadExternalFloatArray_symbol();
|
| + return heap->KeyedLoadExternalFloatArray_symbol();
|
| case kExternalPixelArray:
|
| - return HEAP->KeyedLoadExternalPixelArray_symbol();
|
| + return heap->KeyedLoadExternalPixelArray_symbol();
|
| default:
|
| UNREACHABLE();
|
| return NULL;
|
| @@ -627,7 +628,7 @@ MaybeObject* StubCache::ComputeKeyedLoadOrStoreExternalArray(
|
| strict_mode);
|
| ExternalArrayType array_type =
|
| ElementsKindToExternalArrayType(receiver->GetElementsKind());
|
| - String* name = ExternalArrayTypeToStubName(array_type, is_store);
|
| + String* name = ExternalArrayTypeToStubName(heap(), array_type, is_store);
|
| Object* code = receiver->map()->FindInCodeCache(name, flags);
|
| if (code->IsUndefined()) {
|
| ExternalArrayStubCompiler compiler;
|
| @@ -759,7 +760,7 @@ MaybeObject* StubCache::ComputeKeyedStoreField(String* name,
|
| compiler.CompileStoreField(receiver, field_index, transition, name);
|
| if (!maybe_code->ToObject(&code)) return maybe_code;
|
| }
|
| - PROFILE(isolate_,
|
| + PROFILE(isolate(),
|
| CodeCreateEvent(Logger::KEYED_STORE_IC_TAG,
|
| Code::cast(code), name));
|
| GDBJIT(AddCode(GDBJITInterface::KEYED_STORE_IC, name, Code::cast(code)));
|
| @@ -917,7 +918,7 @@ MaybeObject* StubCache::ComputeCallInterceptor(int argc,
|
| if (!maybe_code->ToObject(&code)) return maybe_code;
|
| }
|
| ASSERT_EQ(flags, Code::cast(code)->flags());
|
| - PROFILE(isolate_,
|
| + PROFILE(isolate(),
|
| CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG),
|
| Code::cast(code), name));
|
| GDBJIT(AddCode(GDBJITInterface::CALL_IC, name, Code::cast(code)));
|
| @@ -975,7 +976,7 @@ MaybeObject* StubCache::ComputeCallGlobal(int argc,
|
| if (!maybe_code->ToObject(&code)) return maybe_code;
|
| }
|
| ASSERT_EQ(flags, Code::cast(code)->flags());
|
| - PROFILE(isolate_,
|
| + PROFILE(isolate(),
|
| CodeCreateEvent(CALL_LOGGER_TAG(kind, CALL_IC_TAG),
|
| Code::cast(code), name));
|
| GDBJIT(AddCode(GDBJITInterface::CALL_IC, name, Code::cast(code)));
|
| @@ -1046,8 +1047,8 @@ Code* StubCache::FindCallInitialize(int argc,
|
| Code::kNoExtraICState,
|
| NORMAL,
|
| argc);
|
| - Object* result = ProbeCache(isolate_, flags)->ToObjectUnchecked();
|
| - ASSERT(result != isolate_->heap()->undefined_value());
|
| + Object* result = ProbeCache(isolate(), flags)->ToObjectUnchecked();
|
| + ASSERT(result != heap()->undefined_value());
|
| // This might be called during the marking phase of the collector
|
| // hence the unchecked cast.
|
| return reinterpret_cast<Code*>(result);
|
| @@ -1219,12 +1220,12 @@ MaybeObject* StubCache::ComputeCallDebugPrepareStepIn(int argc,
|
|
|
| void StubCache::Clear() {
|
| for (int i = 0; i < kPrimaryTableSize; i++) {
|
| - primary_[i].key = isolate_->heap()->empty_string();
|
| + primary_[i].key = heap()->empty_string();
|
| primary_[i].value = isolate_->builtins()->builtin(
|
| Builtins::kIllegal);
|
| }
|
| for (int j = 0; j < kSecondaryTableSize; j++) {
|
| - secondary_[j].key = isolate_->heap()->empty_string();
|
| + secondary_[j].key = heap()->empty_string();
|
| secondary_[j].value = isolate_->builtins()->builtin(
|
| Builtins::kIllegal);
|
| }
|
| @@ -1668,7 +1669,7 @@ MaybeObject* StubCompiler::GetCodeWithFlags(Code::Flags flags,
|
| // Create code object in the heap.
|
| CodeDesc desc;
|
| masm_.GetCode(&desc);
|
| - MaybeObject* result = HEAP->CreateCode(desc, flags, masm_.CodeObject());
|
| + MaybeObject* result = heap()->CreateCode(desc, flags, masm_.CodeObject());
|
| #ifdef ENABLE_DISASSEMBLER
|
| if (FLAG_print_code_stubs && !result->IsFailure()) {
|
| Code::cast(result->ToObjectUnchecked())->Disassemble(name);
|
|
|