thread isolate for files starting with 'b' and 'c'

R=svenpanne@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23729006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
dcarney@chromium.org 2013-09-03 06:57:16 +00:00
parent 42598f962c
commit 675ac2660d
19 changed files with 101 additions and 101 deletions

View File

@ -61,7 +61,7 @@ class CodeGenerator: public AstVisitor {
// Print the code after compiling it. // Print the code after compiling it.
static void PrintCode(Handle<Code> code, CompilationInfo* info); static void PrintCode(Handle<Code> code, CompilationInfo* info);
static bool ShouldGenerateLog(Expression* type); static bool ShouldGenerateLog(Isolate* isolate, Expression* type);
static void SetFunctionInfo(Handle<JSFunction> fun, static void SetFunctionInfo(Handle<JSFunction> fun,
FunctionLiteral* lit, FunctionLiteral* lit,

View File

@ -3312,7 +3312,7 @@ void FullCodeGenerator::EmitLog(CallRuntime* expr) {
// 2 (array): Arguments to the format string. // 2 (array): Arguments to the format string.
ZoneList<Expression*>* args = expr->arguments(); ZoneList<Expression*>* args = expr->arguments();
ASSERT_EQ(args->length(), 3); ASSERT_EQ(args->length(), 3);
if (CodeGenerator::ShouldGenerateLog(args->at(0))) { if (CodeGenerator::ShouldGenerateLog(isolate(), args->at(0))) {
VisitForStackValue(args->at(1)); VisitForStackValue(args->at(1));
VisitForStackValue(args->at(2)); VisitForStackValue(args->at(2));
__ CallRuntime(Runtime::kLog, 2); __ CallRuntime(Runtime::kLog, 2);

View File

@ -1717,9 +1717,8 @@ void Builtins::InitBuiltinFunctionTable() {
} }
void Builtins::SetUp(bool create_heap_objects) { void Builtins::SetUp(Isolate* isolate, bool create_heap_objects) {
ASSERT(!initialized_); ASSERT(!initialized_);
Isolate* isolate = Isolate::Current();
Heap* heap = isolate->heap(); Heap* heap = isolate->heap();
// Create a scope for the handles in the builtins. // Create a scope for the handles in the builtins.

View File

@ -292,7 +292,7 @@ class Builtins {
// Generate all builtin code objects. Should be called once during // Generate all builtin code objects. Should be called once during
// isolate initialization. // isolate initialization.
void SetUp(bool create_heap_objects); void SetUp(Isolate* isolate, bool create_heap_objects);
void TearDown(); void TearDown();
// Garbage collection support. // Garbage collection support.

View File

@ -217,8 +217,8 @@ bool CodeStubGraphBuilderBase::BuildGraph() {
template <class Stub> template <class Stub>
class CodeStubGraphBuilder: public CodeStubGraphBuilderBase { class CodeStubGraphBuilder: public CodeStubGraphBuilderBase {
public: public:
explicit CodeStubGraphBuilder(Stub* stub) explicit CodeStubGraphBuilder(Isolate* isolate, Stub* stub)
: CodeStubGraphBuilderBase(Isolate::Current(), stub) {} : CodeStubGraphBuilderBase(isolate, stub) {}
protected: protected:
virtual HValue* BuildCodeStub() { virtual HValue* BuildCodeStub() {
@ -285,8 +285,7 @@ Handle<Code> HydrogenCodeStub::GenerateLightweightMissCode(Isolate* isolate) {
template <class Stub> template <class Stub>
static Handle<Code> DoGenerateCode(Stub* stub) { static Handle<Code> DoGenerateCode(Isolate* isolate, Stub* stub) {
Isolate* isolate = Isolate::Current();
CodeStub::Major major_key = CodeStub::Major major_key =
static_cast<HydrogenCodeStub*>(stub)->MajorKey(); static_cast<HydrogenCodeStub*>(stub)->MajorKey();
CodeStubInterfaceDescriptor* descriptor = CodeStubInterfaceDescriptor* descriptor =
@ -302,7 +301,7 @@ static Handle<Code> DoGenerateCode(Stub* stub) {
ASSERT(descriptor->stack_parameter_count_ == NULL); ASSERT(descriptor->stack_parameter_count_ == NULL);
return stub->GenerateLightweightMissCode(isolate); return stub->GenerateLightweightMissCode(isolate);
} }
CodeStubGraphBuilder<Stub> builder(stub); CodeStubGraphBuilder<Stub> builder(isolate, stub);
LChunk* chunk = OptimizeGraph(builder.CreateGraph()); LChunk* chunk = OptimizeGraph(builder.CreateGraph());
return chunk->Codegen(); return chunk->Codegen();
} }
@ -334,8 +333,8 @@ HValue* CodeStubGraphBuilder<ToNumberStub>::BuildCodeStub() {
} }
Handle<Code> ToNumberStub::GenerateCode() { Handle<Code> ToNumberStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -401,8 +400,8 @@ HValue* CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub() {
} }
Handle<Code> FastCloneShallowArrayStub::GenerateCode() { Handle<Code> FastCloneShallowArrayStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -448,8 +447,8 @@ HValue* CodeStubGraphBuilder<FastCloneShallowObjectStub>::BuildCodeStub() {
} }
Handle<Code> FastCloneShallowObjectStub::GenerateCode() { Handle<Code> FastCloneShallowObjectStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -494,8 +493,8 @@ HValue* CodeStubGraphBuilder<CreateAllocationSiteStub>::BuildCodeStub() {
} }
Handle<Code> CreateAllocationSiteStub::GenerateCode() { Handle<Code> CreateAllocationSiteStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -509,8 +508,8 @@ HValue* CodeStubGraphBuilder<KeyedLoadFastElementStub>::BuildCodeStub() {
} }
Handle<Code> KeyedLoadFastElementStub::GenerateCode() { Handle<Code> KeyedLoadFastElementStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -524,8 +523,8 @@ HValue* CodeStubGraphBuilder<LoadFieldStub>::BuildCodeStub() {
} }
Handle<Code> LoadFieldStub::GenerateCode() { Handle<Code> LoadFieldStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -539,8 +538,8 @@ HValue* CodeStubGraphBuilder<KeyedLoadFieldStub>::BuildCodeStub() {
} }
Handle<Code> KeyedLoadFieldStub::GenerateCode() { Handle<Code> KeyedLoadFieldStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -555,8 +554,8 @@ HValue* CodeStubGraphBuilder<KeyedStoreFastElementStub>::BuildCodeStub() {
} }
Handle<Code> KeyedStoreFastElementStub::GenerateCode() { Handle<Code> KeyedStoreFastElementStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -574,8 +573,8 @@ HValue* CodeStubGraphBuilder<TransitionElementsKindStub>::BuildCodeStub() {
} }
Handle<Code> TransitionElementsKindStub::GenerateCode() { Handle<Code> TransitionElementsKindStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
HValue* CodeStubGraphBuilderBase::BuildArrayConstructor( HValue* CodeStubGraphBuilderBase::BuildArrayConstructor(
@ -709,8 +708,8 @@ HValue* CodeStubGraphBuilder<ArrayNoArgumentConstructorStub>::BuildCodeStub() {
} }
Handle<Code> ArrayNoArgumentConstructorStub::GenerateCode() { Handle<Code> ArrayNoArgumentConstructorStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -724,8 +723,9 @@ HValue* CodeStubGraphBuilder<ArraySingleArgumentConstructorStub>::
} }
Handle<Code> ArraySingleArgumentConstructorStub::GenerateCode() { Handle<Code> ArraySingleArgumentConstructorStub::GenerateCode(
return DoGenerateCode(this); Isolate* isolate) {
return DoGenerateCode(isolate, this);
} }
@ -738,8 +738,8 @@ HValue* CodeStubGraphBuilder<ArrayNArgumentsConstructorStub>::BuildCodeStub() {
} }
Handle<Code> ArrayNArgumentsConstructorStub::GenerateCode() { Handle<Code> ArrayNArgumentsConstructorStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -751,8 +751,9 @@ HValue* CodeStubGraphBuilder<InternalArrayNoArgumentConstructorStub>::
} }
Handle<Code> InternalArrayNoArgumentConstructorStub::GenerateCode() { Handle<Code> InternalArrayNoArgumentConstructorStub::GenerateCode(
return DoGenerateCode(this); Isolate* isolate) {
return DoGenerateCode(isolate, this);
} }
@ -764,8 +765,9 @@ HValue* CodeStubGraphBuilder<InternalArraySingleArgumentConstructorStub>::
} }
Handle<Code> InternalArraySingleArgumentConstructorStub::GenerateCode() { Handle<Code> InternalArraySingleArgumentConstructorStub::GenerateCode(
return DoGenerateCode(this); Isolate* isolate) {
return DoGenerateCode(isolate, this);
} }
@ -777,8 +779,9 @@ HValue* CodeStubGraphBuilder<InternalArrayNArgumentsConstructorStub>::
} }
Handle<Code> InternalArrayNArgumentsConstructorStub::GenerateCode() { Handle<Code> InternalArrayNArgumentsConstructorStub::GenerateCode(
return DoGenerateCode(this); Isolate* isolate) {
return DoGenerateCode(isolate, this);
} }
@ -803,8 +806,8 @@ HValue* CodeStubGraphBuilder<CompareNilICStub>::BuildCodeInitializedStub() {
} }
Handle<Code> CompareNilICStub::GenerateCode() { Handle<Code> CompareNilICStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -822,8 +825,8 @@ HValue* CodeStubGraphBuilder<ToBooleanStub>::BuildCodeInitializedStub() {
} }
Handle<Code> ToBooleanStub::GenerateCode() { Handle<Code> ToBooleanStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -871,8 +874,8 @@ HValue* CodeStubGraphBuilder<StoreGlobalStub>::BuildCodeInitializedStub() {
} }
Handle<Code> StoreGlobalStub::GenerateCode() { Handle<Code> StoreGlobalStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -906,8 +909,8 @@ HValue* CodeStubGraphBuilder<ElementsTransitionAndStoreStub>::BuildCodeStub() {
} }
Handle<Code> ElementsTransitionAndStoreStub::GenerateCode() { Handle<Code> ElementsTransitionAndStoreStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }
@ -1096,8 +1099,8 @@ HValue* CodeStubGraphBuilder<FastNewClosureStub>::BuildCodeStub() {
} }
Handle<Code> FastNewClosureStub::GenerateCode() { Handle<Code> FastNewClosureStub::GenerateCode(Isolate* isolate) {
return DoGenerateCode(this); return DoGenerateCode(isolate, this);
} }

View File

@ -46,7 +46,7 @@ CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor()
function_mode_(NOT_JS_FUNCTION_STUB_MODE), function_mode_(NOT_JS_FUNCTION_STUB_MODE),
register_params_(NULL), register_params_(NULL),
deoptimization_handler_(NULL), deoptimization_handler_(NULL),
miss_handler_(IC_Utility(IC::kUnreachable), Isolate::Current()), miss_handler_(),
has_miss_handler_(false) { } has_miss_handler_(false) { }
@ -93,8 +93,7 @@ Handle<Code> CodeStub::GetCodeCopyFromTemplate(Isolate* isolate) {
} }
Handle<Code> PlatformCodeStub::GenerateCode() { Handle<Code> PlatformCodeStub::GenerateCode(Isolate* isolate) {
Isolate* isolate = Isolate::Current();
Factory* factory = isolate->factory(); Factory* factory = isolate->factory();
// Generate the new code. // Generate the new code.
@ -144,7 +143,7 @@ Handle<Code> CodeStub::GetCode(Isolate* isolate) {
{ {
HandleScope scope(isolate); HandleScope scope(isolate);
Handle<Code> new_object = GenerateCode(); Handle<Code> new_object = GenerateCode(isolate);
new_object->set_major_key(MajorKey()); new_object->set_major_key(MajorKey());
FinishCode(new_object); FinishCode(new_object);
RecordCodeGeneration(*new_object, isolate); RecordCodeGeneration(*new_object, isolate);

View File

@ -205,7 +205,7 @@ class CodeStub BASE_EMBEDDED {
static bool CanUseFPRegisters(); static bool CanUseFPRegisters();
// Generates the assembler code for the stub. // Generates the assembler code for the stub.
virtual Handle<Code> GenerateCode() = 0; virtual Handle<Code> GenerateCode(Isolate* isolate) = 0;
// Returns whether the code generated for this stub needs to be allocated as // Returns whether the code generated for this stub needs to be allocated as
@ -263,7 +263,7 @@ class CodeStub BASE_EMBEDDED {
class PlatformCodeStub : public CodeStub { class PlatformCodeStub : public CodeStub {
public: public:
// Retrieve the code for the stub. Generate the code if needed. // Retrieve the code for the stub. Generate the code if needed.
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual Code::Kind GetCodeKind() const { return Code::STUB; } virtual Code::Kind GetCodeKind() const { return Code::STUB; }
@ -353,7 +353,7 @@ class HydrogenCodeStub : public CodeStub {
CodeStubInterfaceDescriptor* descriptor) = 0; CodeStubInterfaceDescriptor* descriptor) = 0;
// Retrieve the code for the stub. Generate the code if needed. // Retrieve the code for the stub. Generate the code if needed.
virtual Handle<Code> GenerateCode() = 0; virtual Handle<Code> GenerateCode(Isolate* isolate) = 0;
virtual int NotMissMinorKey() = 0; virtual int NotMissMinorKey() = 0;
@ -453,7 +453,7 @@ class ToNumberStub: public HydrogenCodeStub {
public: public:
ToNumberStub() { } ToNumberStub() { }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -471,7 +471,7 @@ class FastNewClosureStub : public HydrogenCodeStub {
: language_mode_(language_mode), : language_mode_(language_mode),
is_generator_(is_generator) { } is_generator_(is_generator) { }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -539,7 +539,7 @@ class StoreGlobalStub : public HydrogenCodeStub {
IsConstantBits::encode(is_constant); IsConstantBits::encode(is_constant);
} }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -621,7 +621,7 @@ class FastCloneShallowArrayStub : public HydrogenCodeStub {
return LAST_ELEMENTS_KIND; return LAST_ELEMENTS_KIND;
} }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -661,7 +661,7 @@ class FastCloneShallowObjectStub : public HydrogenCodeStub {
int length() const { return length_; } int length() const { return length_; }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -681,7 +681,7 @@ class CreateAllocationSiteStub : public HydrogenCodeStub {
public: public:
explicit CreateAllocationSiteStub() { } explicit CreateAllocationSiteStub() { }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual bool IsPregenerated() { return true; } virtual bool IsPregenerated() { return true; }
@ -898,7 +898,7 @@ class LoadFieldStub: public HandlerStub {
Initialize(Code::LOAD_IC, inobject, index, representation); Initialize(Code::LOAD_IC, inobject, index, representation);
} }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -967,7 +967,7 @@ class KeyedLoadFieldStub: public LoadFieldStub {
Isolate* isolate, Isolate* isolate,
CodeStubInterfaceDescriptor* descriptor); CodeStubInterfaceDescriptor* descriptor);
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
private: private:
virtual CodeStub::Major MajorKey() { return KeyedLoadField; } virtual CodeStub::Major MajorKey() { return KeyedLoadField; }
@ -1238,7 +1238,7 @@ class CompareNilICStub : public HydrogenCodeStub {
virtual Code::Kind GetCodeKind() const { return Code::COMPARE_NIL_IC; } virtual Code::Kind GetCodeKind() const { return Code::COMPARE_NIL_IC; }
Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual Code::ExtraICState GetExtraICState() { virtual Code::ExtraICState GetExtraICState() {
return NilValueField::encode(nil_value_) | return NilValueField::encode(nil_value_) |
@ -1763,7 +1763,7 @@ class KeyedLoadFastElementStub : public HydrogenCodeStub {
return ElementsKindBits::decode(bit_field_); return ElementsKindBits::decode(bit_field_);
} }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -1803,7 +1803,7 @@ class KeyedStoreFastElementStub : public HydrogenCodeStub {
return StoreModeBits::decode(bit_field_); return StoreModeBits::decode(bit_field_);
} }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -1838,7 +1838,7 @@ class TransitionElementsKindStub : public HydrogenCodeStub {
return ToKindBits::decode(bit_field_); return ToKindBits::decode(bit_field_);
} }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -1934,7 +1934,7 @@ class ArrayNoArgumentConstructorStub : public ArrayConstructorStubBase {
: ArrayConstructorStubBase(kind, context_mode, override_mode) { : ArrayConstructorStubBase(kind, context_mode, override_mode) {
} }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -1956,7 +1956,7 @@ class ArraySingleArgumentConstructorStub : public ArrayConstructorStubBase {
: ArrayConstructorStubBase(kind, context_mode, override_mode) { : ArrayConstructorStubBase(kind, context_mode, override_mode) {
} }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -1978,7 +1978,7 @@ class ArrayNArgumentsConstructorStub : public ArrayConstructorStubBase {
: ArrayConstructorStubBase(kind, context_mode, override_mode) { : ArrayConstructorStubBase(kind, context_mode, override_mode) {
} }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -2021,7 +2021,7 @@ class InternalArrayNoArgumentConstructorStub : public
explicit InternalArrayNoArgumentConstructorStub(ElementsKind kind) explicit InternalArrayNoArgumentConstructorStub(ElementsKind kind)
: InternalArrayConstructorStubBase(kind) { } : InternalArrayConstructorStubBase(kind) { }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -2040,7 +2040,7 @@ class InternalArraySingleArgumentConstructorStub : public
explicit InternalArraySingleArgumentConstructorStub(ElementsKind kind) explicit InternalArraySingleArgumentConstructorStub(ElementsKind kind)
: InternalArrayConstructorStubBase(kind) { } : InternalArrayConstructorStubBase(kind) { }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -2059,7 +2059,7 @@ class InternalArrayNArgumentsConstructorStub : public
explicit InternalArrayNArgumentsConstructorStub(ElementsKind kind) explicit InternalArrayNArgumentsConstructorStub(ElementsKind kind)
: InternalArrayConstructorStubBase(kind) { } : InternalArrayConstructorStubBase(kind) { }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
@ -2148,7 +2148,7 @@ class ToBooleanStub: public HydrogenCodeStub {
bool UpdateStatus(Handle<Object> object); bool UpdateStatus(Handle<Object> object);
Types GetTypes() { return types_; } Types GetTypes() { return types_; }
virtual Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
virtual void InitializeInterfaceDescriptor( virtual void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,
CodeStubInterfaceDescriptor* descriptor); CodeStubInterfaceDescriptor* descriptor);
@ -2208,7 +2208,7 @@ class ElementsTransitionAndStoreStub : public HydrogenCodeStub {
bool is_jsarray() const { return is_jsarray_; } bool is_jsarray() const { return is_jsarray_; }
KeyedAccessStoreMode store_mode() const { return store_mode_; } KeyedAccessStoreMode store_mode() const { return store_mode_; }
Handle<Code> GenerateCode(); virtual Handle<Code> GenerateCode(Isolate* isolate);
void InitializeInterfaceDescriptor( void InitializeInterfaceDescriptor(
Isolate* isolate, Isolate* isolate,

View File

@ -124,7 +124,7 @@ Handle<Code> CodeGenerator::MakeCodeEpilogue(MacroAssembler* masm,
void CodeGenerator::PrintCode(Handle<Code> code, CompilationInfo* info) { void CodeGenerator::PrintCode(Handle<Code> code, CompilationInfo* info) {
#ifdef ENABLE_DISASSEMBLER #ifdef ENABLE_DISASSEMBLER
AllowDeferredHandleDereference allow_deference_for_print_code; AllowDeferredHandleDereference allow_deference_for_print_code;
bool print_code = Isolate::Current()->bootstrapper()->IsActive() bool print_code = info->isolate()->bootstrapper()->IsActive()
? FLAG_print_builtin_code ? FLAG_print_builtin_code
: (FLAG_print_code || : (FLAG_print_code ||
(info->IsStub() && FLAG_print_code_stubs) || (info->IsStub() && FLAG_print_code_stubs) ||
@ -171,9 +171,8 @@ void CodeGenerator::PrintCode(Handle<Code> code, CompilationInfo* info) {
} }
bool CodeGenerator::ShouldGenerateLog(Expression* type) { bool CodeGenerator::ShouldGenerateLog(Isolate* isolate, Expression* type) {
ASSERT(type != NULL); ASSERT(type != NULL);
Isolate* isolate = Isolate::Current();
if (!isolate->logger()->is_logging() && if (!isolate->logger()->is_logging() &&
!isolate->cpu_profiler()->is_profiling()) { !isolate->cpu_profiler()->is_profiling()) {
return false; return false;

View File

@ -845,7 +845,7 @@ static bool InstallFullCode(CompilationInfo* info) {
// version of the function right away - unless the debugger is // version of the function right away - unless the debugger is
// active as it makes no sense to compile optimized code then. // active as it makes no sense to compile optimized code then.
if (FLAG_always_opt && if (FLAG_always_opt &&
!Isolate::Current()->DebuggerHasBreakPoints()) { !info->isolate()->DebuggerHasBreakPoints()) {
CompilationInfoWithZone optimized(function); CompilationInfoWithZone optimized(function);
optimized.SetOptimizing(BailoutId::None()); optimized.SetOptimizing(BailoutId::None());
return Compiler::CompileLazy(&optimized); return Compiler::CompileLazy(&optimized);

View File

@ -74,7 +74,7 @@ Context* Context::native_context() {
// During bootstrapping, the global object might not be set and we // During bootstrapping, the global object might not be set and we
// have to search the context chain to find the native context. // have to search the context chain to find the native context.
ASSERT(Isolate::Current()->bootstrapper()->IsActive()); ASSERT(this->GetIsolate()->bootstrapper()->IsActive());
Context* current = this; Context* current = this;
while (!current->IsNativeContext()) { while (!current->IsNativeContext()) {
JSFunction* closure = JSFunction::cast(current->closure()); JSFunction* closure = JSFunction::cast(current->closure());
@ -352,10 +352,9 @@ bool Context::IsBootstrappingOrValidParentContext(
} }
bool Context::IsBootstrappingOrGlobalObject(Object* object) { bool Context::IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object) {
// During bootstrapping we allow all objects to pass as global // During bootstrapping we allow all objects to pass as global
// objects. This is necessary to fix circular dependencies. // objects. This is necessary to fix circular dependencies.
Isolate* isolate = Isolate::Current();
return isolate->heap()->gc_state() != Heap::NOT_IN_GC || return isolate->heap()->gc_state() != Heap::NOT_IN_GC ||
isolate->bootstrapper()->IsActive() || isolate->bootstrapper()->IsActive() ||
object->IsGlobalObject(); object->IsGlobalObject();

View File

@ -370,7 +370,7 @@ class Context: public FixedArray {
GlobalObject* global_object() { GlobalObject* global_object() {
Object* result = get(GLOBAL_OBJECT_INDEX); Object* result = get(GLOBAL_OBJECT_INDEX);
ASSERT(IsBootstrappingOrGlobalObject(result)); ASSERT(IsBootstrappingOrGlobalObject(this->GetIsolate(), result));
return reinterpret_cast<GlobalObject*>(result); return reinterpret_cast<GlobalObject*>(result);
} }
void set_global_object(GlobalObject* object) { void set_global_object(GlobalObject* object) {
@ -508,7 +508,7 @@ class Context: public FixedArray {
#ifdef DEBUG #ifdef DEBUG
// Bootstrapping-aware type checks. // Bootstrapping-aware type checks.
static bool IsBootstrappingOrValidParentContext(Object* object, Context* kid); static bool IsBootstrappingOrValidParentContext(Object* object, Context* kid);
static bool IsBootstrappingOrGlobalObject(Object* object); static bool IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object);
#endif #endif
STATIC_CHECK(kHeaderSize == Internals::kContextHeaderSize); STATIC_CHECK(kHeaderSize == Internals::kContextHeaderSize);

View File

@ -41,7 +41,7 @@ StatsTable::StatsTable()
int* StatsCounter::FindLocationInStatsTable() const { int* StatsCounter::FindLocationInStatsTable() const {
return Isolate::Current()->stats_table()->FindLocation(name_); return isolate_->stats_table()->FindLocation(name_);
} }

View File

@ -116,8 +116,8 @@ class StatsTable {
class StatsCounter { class StatsCounter {
public: public:
StatsCounter() { } StatsCounter() { }
explicit StatsCounter(const char* name) explicit StatsCounter(Isolate* isolate, const char* name)
: name_(name), ptr_(NULL), lookup_done_(false) { } : isolate_(isolate), name_(name), ptr_(NULL), lookup_done_(false) { }
// Sets the counter to a specific value. // Sets the counter to a specific value.
void Set(int value) { void Set(int value) {
@ -175,6 +175,7 @@ class StatsCounter {
private: private:
int* FindLocationInStatsTable() const; int* FindLocationInStatsTable() const;
Isolate* isolate_;
const char* name_; const char* name_;
int* ptr_; int* ptr_;
bool lookup_done_; bool lookup_done_;

View File

@ -53,7 +53,7 @@ class CodeGenerator {
// Print the code after compiling it. // Print the code after compiling it.
static void PrintCode(Handle<Code> code, CompilationInfo* info); static void PrintCode(Handle<Code> code, CompilationInfo* info);
static bool ShouldGenerateLog(Expression* type); static bool ShouldGenerateLog(Isolate* isolate, Expression* type);
static bool RecordPositions(MacroAssembler* masm, static bool RecordPositions(MacroAssembler* masm,
int pos, int pos,

View File

@ -3266,7 +3266,7 @@ void FullCodeGenerator::EmitLog(CallRuntime* expr) {
// 2 (array): Arguments to the format string. // 2 (array): Arguments to the format string.
ZoneList<Expression*>* args = expr->arguments(); ZoneList<Expression*>* args = expr->arguments();
ASSERT_EQ(args->length(), 3); ASSERT_EQ(args->length(), 3);
if (CodeGenerator::ShouldGenerateLog(args->at(0))) { if (CodeGenerator::ShouldGenerateLog(isolate(), args->at(0))) {
VisitForStackValue(args->at(1)); VisitForStackValue(args->at(1));
VisitForStackValue(args->at(2)); VisitForStackValue(args->at(2));
__ CallRuntime(Runtime::kLog, 2); __ CallRuntime(Runtime::kLog, 2);

View File

@ -2239,7 +2239,7 @@ bool Isolate::Init(Deserializer* des) {
InitializeThreadLocal(); InitializeThreadLocal();
bootstrapper_->Initialize(create_heap_objects); bootstrapper_->Initialize(create_heap_objects);
builtins_.SetUp(create_heap_objects); builtins_.SetUp(this, create_heap_objects);
// Only preallocate on the first initialization. // Only preallocate on the first initialization.
if (FLAG_preallocate_message_memory && preallocated_message_space_ == NULL) { if (FLAG_preallocate_message_memory && preallocated_message_space_ == NULL) {

View File

@ -49,31 +49,31 @@ Counters::Counters(Isolate* isolate) {
#undef HM #undef HM
#define SC(name, caption) \ #define SC(name, caption) \
name##_ = StatsCounter("c:" #caption); name##_ = StatsCounter(isolate, "c:" #caption);
STATS_COUNTER_LIST_1(SC) STATS_COUNTER_LIST_1(SC)
STATS_COUNTER_LIST_2(SC) STATS_COUNTER_LIST_2(SC)
#undef SC #undef SC
#define SC(name) \ #define SC(name) \
count_of_##name##_ = StatsCounter("c:" "V8.CountOf_" #name); \ count_of_##name##_ = StatsCounter(isolate, "c:" "V8.CountOf_" #name); \
size_of_##name##_ = StatsCounter("c:" "V8.SizeOf_" #name); size_of_##name##_ = StatsCounter(isolate, "c:" "V8.SizeOf_" #name);
INSTANCE_TYPE_LIST(SC) INSTANCE_TYPE_LIST(SC)
#undef SC #undef SC
#define SC(name) \ #define SC(name) \
count_of_CODE_TYPE_##name##_ = \ count_of_CODE_TYPE_##name##_ = \
StatsCounter("c:" "V8.CountOf_CODE_TYPE-" #name); \ StatsCounter(isolate, "c:" "V8.CountOf_CODE_TYPE-" #name); \
size_of_CODE_TYPE_##name##_ = \ size_of_CODE_TYPE_##name##_ = \
StatsCounter("c:" "V8.SizeOf_CODE_TYPE-" #name); StatsCounter(isolate, "c:" "V8.SizeOf_CODE_TYPE-" #name);
CODE_KIND_LIST(SC) CODE_KIND_LIST(SC)
#undef SC #undef SC
#define SC(name) \ #define SC(name) \
count_of_FIXED_ARRAY_##name##_ = \ count_of_FIXED_ARRAY_##name##_ = \
StatsCounter("c:" "V8.CountOf_FIXED_ARRAY-" #name); \ StatsCounter(isolate, "c:" "V8.CountOf_FIXED_ARRAY-" #name); \
size_of_FIXED_ARRAY_##name##_ = \ size_of_FIXED_ARRAY_##name##_ = \
StatsCounter("c:" "V8.SizeOf_FIXED_ARRAY-" #name); StatsCounter(isolate, "c:" "V8.SizeOf_FIXED_ARRAY-" #name);
FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(SC) FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(SC)
#undef SC #undef SC
} }

View File

@ -61,7 +61,7 @@ class CodeGenerator: public AstVisitor {
// Print the code after compiling it. // Print the code after compiling it.
static void PrintCode(Handle<Code> code, CompilationInfo* info); static void PrintCode(Handle<Code> code, CompilationInfo* info);
static bool ShouldGenerateLog(Expression* type); static bool ShouldGenerateLog(Isolate* isolate, Expression* type);
static bool RecordPositions(MacroAssembler* masm, static bool RecordPositions(MacroAssembler* masm,
int pos, int pos,

View File

@ -3243,7 +3243,7 @@ void FullCodeGenerator::EmitLog(CallRuntime* expr) {
// 2 (array): Arguments to the format string. // 2 (array): Arguments to the format string.
ZoneList<Expression*>* args = expr->arguments(); ZoneList<Expression*>* args = expr->arguments();
ASSERT_EQ(args->length(), 3); ASSERT_EQ(args->length(), 3);
if (CodeGenerator::ShouldGenerateLog(args->at(0))) { if (CodeGenerator::ShouldGenerateLog(isolate(), args->at(0))) {
VisitForStackValue(args->at(1)); VisitForStackValue(args->at(1));
VisitForStackValue(args->at(2)); VisitForStackValue(args->at(2));
__ CallRuntime(Runtime::kLog, 2); __ CallRuntime(Runtime::kLog, 2);