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:
parent
42598f962c
commit
675ac2660d
@ -61,7 +61,7 @@ class CodeGenerator: public AstVisitor {
|
||||
// Print the code after compiling it.
|
||||
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,
|
||||
FunctionLiteral* lit,
|
||||
|
@ -3312,7 +3312,7 @@ void FullCodeGenerator::EmitLog(CallRuntime* expr) {
|
||||
// 2 (array): Arguments to the format string.
|
||||
ZoneList<Expression*>* args = expr->arguments();
|
||||
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(2));
|
||||
__ CallRuntime(Runtime::kLog, 2);
|
||||
|
@ -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_);
|
||||
Isolate* isolate = Isolate::Current();
|
||||
Heap* heap = isolate->heap();
|
||||
|
||||
// Create a scope for the handles in the builtins.
|
||||
|
@ -292,7 +292,7 @@ class Builtins {
|
||||
|
||||
// Generate all builtin code objects. Should be called once during
|
||||
// isolate initialization.
|
||||
void SetUp(bool create_heap_objects);
|
||||
void SetUp(Isolate* isolate, bool create_heap_objects);
|
||||
void TearDown();
|
||||
|
||||
// Garbage collection support.
|
||||
|
@ -217,8 +217,8 @@ bool CodeStubGraphBuilderBase::BuildGraph() {
|
||||
template <class Stub>
|
||||
class CodeStubGraphBuilder: public CodeStubGraphBuilderBase {
|
||||
public:
|
||||
explicit CodeStubGraphBuilder(Stub* stub)
|
||||
: CodeStubGraphBuilderBase(Isolate::Current(), stub) {}
|
||||
explicit CodeStubGraphBuilder(Isolate* isolate, Stub* stub)
|
||||
: CodeStubGraphBuilderBase(isolate, stub) {}
|
||||
|
||||
protected:
|
||||
virtual HValue* BuildCodeStub() {
|
||||
@ -285,8 +285,7 @@ Handle<Code> HydrogenCodeStub::GenerateLightweightMissCode(Isolate* isolate) {
|
||||
|
||||
|
||||
template <class Stub>
|
||||
static Handle<Code> DoGenerateCode(Stub* stub) {
|
||||
Isolate* isolate = Isolate::Current();
|
||||
static Handle<Code> DoGenerateCode(Isolate* isolate, Stub* stub) {
|
||||
CodeStub::Major major_key =
|
||||
static_cast<HydrogenCodeStub*>(stub)->MajorKey();
|
||||
CodeStubInterfaceDescriptor* descriptor =
|
||||
@ -302,7 +301,7 @@ static Handle<Code> DoGenerateCode(Stub* stub) {
|
||||
ASSERT(descriptor->stack_parameter_count_ == NULL);
|
||||
return stub->GenerateLightweightMissCode(isolate);
|
||||
}
|
||||
CodeStubGraphBuilder<Stub> builder(stub);
|
||||
CodeStubGraphBuilder<Stub> builder(isolate, stub);
|
||||
LChunk* chunk = OptimizeGraph(builder.CreateGraph());
|
||||
return chunk->Codegen();
|
||||
}
|
||||
@ -334,8 +333,8 @@ HValue* CodeStubGraphBuilder<ToNumberStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> ToNumberStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> ToNumberStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -401,8 +400,8 @@ HValue* CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> FastCloneShallowArrayStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> FastCloneShallowArrayStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -448,8 +447,8 @@ HValue* CodeStubGraphBuilder<FastCloneShallowObjectStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> FastCloneShallowObjectStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> FastCloneShallowObjectStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -494,8 +493,8 @@ HValue* CodeStubGraphBuilder<CreateAllocationSiteStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> CreateAllocationSiteStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> CreateAllocationSiteStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -509,8 +508,8 @@ HValue* CodeStubGraphBuilder<KeyedLoadFastElementStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> KeyedLoadFastElementStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> KeyedLoadFastElementStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -524,8 +523,8 @@ HValue* CodeStubGraphBuilder<LoadFieldStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> LoadFieldStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> LoadFieldStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -539,8 +538,8 @@ HValue* CodeStubGraphBuilder<KeyedLoadFieldStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> KeyedLoadFieldStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> KeyedLoadFieldStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -555,8 +554,8 @@ HValue* CodeStubGraphBuilder<KeyedStoreFastElementStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> KeyedStoreFastElementStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> KeyedStoreFastElementStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -574,8 +573,8 @@ HValue* CodeStubGraphBuilder<TransitionElementsKindStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> TransitionElementsKindStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> TransitionElementsKindStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
HValue* CodeStubGraphBuilderBase::BuildArrayConstructor(
|
||||
@ -709,8 +708,8 @@ HValue* CodeStubGraphBuilder<ArrayNoArgumentConstructorStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> ArrayNoArgumentConstructorStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> ArrayNoArgumentConstructorStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -724,8 +723,9 @@ HValue* CodeStubGraphBuilder<ArraySingleArgumentConstructorStub>::
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> ArraySingleArgumentConstructorStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> ArraySingleArgumentConstructorStub::GenerateCode(
|
||||
Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -738,8 +738,8 @@ HValue* CodeStubGraphBuilder<ArrayNArgumentsConstructorStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> ArrayNArgumentsConstructorStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> ArrayNArgumentsConstructorStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -751,8 +751,9 @@ HValue* CodeStubGraphBuilder<InternalArrayNoArgumentConstructorStub>::
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> InternalArrayNoArgumentConstructorStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> InternalArrayNoArgumentConstructorStub::GenerateCode(
|
||||
Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -764,8 +765,9 @@ HValue* CodeStubGraphBuilder<InternalArraySingleArgumentConstructorStub>::
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> InternalArraySingleArgumentConstructorStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> InternalArraySingleArgumentConstructorStub::GenerateCode(
|
||||
Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -777,8 +779,9 @@ HValue* CodeStubGraphBuilder<InternalArrayNArgumentsConstructorStub>::
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> InternalArrayNArgumentsConstructorStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> InternalArrayNArgumentsConstructorStub::GenerateCode(
|
||||
Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -803,8 +806,8 @@ HValue* CodeStubGraphBuilder<CompareNilICStub>::BuildCodeInitializedStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> CompareNilICStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> CompareNilICStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -822,8 +825,8 @@ HValue* CodeStubGraphBuilder<ToBooleanStub>::BuildCodeInitializedStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> ToBooleanStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> ToBooleanStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -871,8 +874,8 @@ HValue* CodeStubGraphBuilder<StoreGlobalStub>::BuildCodeInitializedStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> StoreGlobalStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> StoreGlobalStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -906,8 +909,8 @@ HValue* CodeStubGraphBuilder<ElementsTransitionAndStoreStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> ElementsTransitionAndStoreStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> ElementsTransitionAndStoreStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
@ -1096,8 +1099,8 @@ HValue* CodeStubGraphBuilder<FastNewClosureStub>::BuildCodeStub() {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> FastNewClosureStub::GenerateCode() {
|
||||
return DoGenerateCode(this);
|
||||
Handle<Code> FastNewClosureStub::GenerateCode(Isolate* isolate) {
|
||||
return DoGenerateCode(isolate, this);
|
||||
}
|
||||
|
||||
|
||||
|
@ -46,7 +46,7 @@ CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor()
|
||||
function_mode_(NOT_JS_FUNCTION_STUB_MODE),
|
||||
register_params_(NULL),
|
||||
deoptimization_handler_(NULL),
|
||||
miss_handler_(IC_Utility(IC::kUnreachable), Isolate::Current()),
|
||||
miss_handler_(),
|
||||
has_miss_handler_(false) { }
|
||||
|
||||
|
||||
@ -93,8 +93,7 @@ Handle<Code> CodeStub::GetCodeCopyFromTemplate(Isolate* isolate) {
|
||||
}
|
||||
|
||||
|
||||
Handle<Code> PlatformCodeStub::GenerateCode() {
|
||||
Isolate* isolate = Isolate::Current();
|
||||
Handle<Code> PlatformCodeStub::GenerateCode(Isolate* isolate) {
|
||||
Factory* factory = isolate->factory();
|
||||
|
||||
// Generate the new code.
|
||||
@ -144,7 +143,7 @@ Handle<Code> CodeStub::GetCode(Isolate* isolate) {
|
||||
{
|
||||
HandleScope scope(isolate);
|
||||
|
||||
Handle<Code> new_object = GenerateCode();
|
||||
Handle<Code> new_object = GenerateCode(isolate);
|
||||
new_object->set_major_key(MajorKey());
|
||||
FinishCode(new_object);
|
||||
RecordCodeGeneration(*new_object, isolate);
|
||||
|
@ -205,7 +205,7 @@ class CodeStub BASE_EMBEDDED {
|
||||
static bool CanUseFPRegisters();
|
||||
|
||||
// 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
|
||||
@ -263,7 +263,7 @@ class CodeStub BASE_EMBEDDED {
|
||||
class PlatformCodeStub : public CodeStub {
|
||||
public:
|
||||
// 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; }
|
||||
|
||||
@ -353,7 +353,7 @@ class HydrogenCodeStub : public CodeStub {
|
||||
CodeStubInterfaceDescriptor* descriptor) = 0;
|
||||
|
||||
// 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;
|
||||
|
||||
@ -453,7 +453,7 @@ class ToNumberStub: public HydrogenCodeStub {
|
||||
public:
|
||||
ToNumberStub() { }
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -471,7 +471,7 @@ class FastNewClosureStub : public HydrogenCodeStub {
|
||||
: language_mode_(language_mode),
|
||||
is_generator_(is_generator) { }
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -539,7 +539,7 @@ class StoreGlobalStub : public HydrogenCodeStub {
|
||||
IsConstantBits::encode(is_constant);
|
||||
}
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -621,7 +621,7 @@ class FastCloneShallowArrayStub : public HydrogenCodeStub {
|
||||
return LAST_ELEMENTS_KIND;
|
||||
}
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -661,7 +661,7 @@ class FastCloneShallowObjectStub : public HydrogenCodeStub {
|
||||
|
||||
int length() const { return length_; }
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -681,7 +681,7 @@ class CreateAllocationSiteStub : public HydrogenCodeStub {
|
||||
public:
|
||||
explicit CreateAllocationSiteStub() { }
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual bool IsPregenerated() { return true; }
|
||||
|
||||
@ -898,7 +898,7 @@ class LoadFieldStub: public HandlerStub {
|
||||
Initialize(Code::LOAD_IC, inobject, index, representation);
|
||||
}
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -967,7 +967,7 @@ class KeyedLoadFieldStub: public LoadFieldStub {
|
||||
Isolate* isolate,
|
||||
CodeStubInterfaceDescriptor* descriptor);
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
private:
|
||||
virtual CodeStub::Major MajorKey() { return KeyedLoadField; }
|
||||
@ -1238,7 +1238,7 @@ class CompareNilICStub : public HydrogenCodeStub {
|
||||
|
||||
virtual Code::Kind GetCodeKind() const { return Code::COMPARE_NIL_IC; }
|
||||
|
||||
Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual Code::ExtraICState GetExtraICState() {
|
||||
return NilValueField::encode(nil_value_) |
|
||||
@ -1763,7 +1763,7 @@ class KeyedLoadFastElementStub : public HydrogenCodeStub {
|
||||
return ElementsKindBits::decode(bit_field_);
|
||||
}
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -1803,7 +1803,7 @@ class KeyedStoreFastElementStub : public HydrogenCodeStub {
|
||||
return StoreModeBits::decode(bit_field_);
|
||||
}
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -1838,7 +1838,7 @@ class TransitionElementsKindStub : public HydrogenCodeStub {
|
||||
return ToKindBits::decode(bit_field_);
|
||||
}
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -1934,7 +1934,7 @@ class ArrayNoArgumentConstructorStub : public ArrayConstructorStubBase {
|
||||
: ArrayConstructorStubBase(kind, context_mode, override_mode) {
|
||||
}
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -1956,7 +1956,7 @@ class ArraySingleArgumentConstructorStub : public ArrayConstructorStubBase {
|
||||
: ArrayConstructorStubBase(kind, context_mode, override_mode) {
|
||||
}
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -1978,7 +1978,7 @@ class ArrayNArgumentsConstructorStub : public ArrayConstructorStubBase {
|
||||
: ArrayConstructorStubBase(kind, context_mode, override_mode) {
|
||||
}
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -2021,7 +2021,7 @@ class InternalArrayNoArgumentConstructorStub : public
|
||||
explicit InternalArrayNoArgumentConstructorStub(ElementsKind kind)
|
||||
: InternalArrayConstructorStubBase(kind) { }
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -2040,7 +2040,7 @@ class InternalArraySingleArgumentConstructorStub : public
|
||||
explicit InternalArraySingleArgumentConstructorStub(ElementsKind kind)
|
||||
: InternalArrayConstructorStubBase(kind) { }
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -2059,7 +2059,7 @@ class InternalArrayNArgumentsConstructorStub : public
|
||||
explicit InternalArrayNArgumentsConstructorStub(ElementsKind kind)
|
||||
: InternalArrayConstructorStubBase(kind) { }
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
@ -2148,7 +2148,7 @@ class ToBooleanStub: public HydrogenCodeStub {
|
||||
bool UpdateStatus(Handle<Object> object);
|
||||
Types GetTypes() { return types_; }
|
||||
|
||||
virtual Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
virtual void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
CodeStubInterfaceDescriptor* descriptor);
|
||||
@ -2208,7 +2208,7 @@ class ElementsTransitionAndStoreStub : public HydrogenCodeStub {
|
||||
bool is_jsarray() const { return is_jsarray_; }
|
||||
KeyedAccessStoreMode store_mode() const { return store_mode_; }
|
||||
|
||||
Handle<Code> GenerateCode();
|
||||
virtual Handle<Code> GenerateCode(Isolate* isolate);
|
||||
|
||||
void InitializeInterfaceDescriptor(
|
||||
Isolate* isolate,
|
||||
|
@ -124,7 +124,7 @@ Handle<Code> CodeGenerator::MakeCodeEpilogue(MacroAssembler* masm,
|
||||
void CodeGenerator::PrintCode(Handle<Code> code, CompilationInfo* info) {
|
||||
#ifdef ENABLE_DISASSEMBLER
|
||||
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_code ||
|
||||
(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);
|
||||
Isolate* isolate = Isolate::Current();
|
||||
if (!isolate->logger()->is_logging() &&
|
||||
!isolate->cpu_profiler()->is_profiling()) {
|
||||
return false;
|
||||
|
@ -845,7 +845,7 @@ static bool InstallFullCode(CompilationInfo* info) {
|
||||
// version of the function right away - unless the debugger is
|
||||
// active as it makes no sense to compile optimized code then.
|
||||
if (FLAG_always_opt &&
|
||||
!Isolate::Current()->DebuggerHasBreakPoints()) {
|
||||
!info->isolate()->DebuggerHasBreakPoints()) {
|
||||
CompilationInfoWithZone optimized(function);
|
||||
optimized.SetOptimizing(BailoutId::None());
|
||||
return Compiler::CompileLazy(&optimized);
|
||||
|
@ -74,7 +74,7 @@ Context* Context::native_context() {
|
||||
|
||||
// During bootstrapping, the global object might not be set and we
|
||||
// have to search the context chain to find the native context.
|
||||
ASSERT(Isolate::Current()->bootstrapper()->IsActive());
|
||||
ASSERT(this->GetIsolate()->bootstrapper()->IsActive());
|
||||
Context* current = this;
|
||||
while (!current->IsNativeContext()) {
|
||||
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
|
||||
// objects. This is necessary to fix circular dependencies.
|
||||
Isolate* isolate = Isolate::Current();
|
||||
return isolate->heap()->gc_state() != Heap::NOT_IN_GC ||
|
||||
isolate->bootstrapper()->IsActive() ||
|
||||
object->IsGlobalObject();
|
||||
|
@ -370,7 +370,7 @@ class Context: public FixedArray {
|
||||
|
||||
GlobalObject* global_object() {
|
||||
Object* result = get(GLOBAL_OBJECT_INDEX);
|
||||
ASSERT(IsBootstrappingOrGlobalObject(result));
|
||||
ASSERT(IsBootstrappingOrGlobalObject(this->GetIsolate(), result));
|
||||
return reinterpret_cast<GlobalObject*>(result);
|
||||
}
|
||||
void set_global_object(GlobalObject* object) {
|
||||
@ -508,7 +508,7 @@ class Context: public FixedArray {
|
||||
#ifdef DEBUG
|
||||
// Bootstrapping-aware type checks.
|
||||
static bool IsBootstrappingOrValidParentContext(Object* object, Context* kid);
|
||||
static bool IsBootstrappingOrGlobalObject(Object* object);
|
||||
static bool IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object);
|
||||
#endif
|
||||
|
||||
STATIC_CHECK(kHeaderSize == Internals::kContextHeaderSize);
|
||||
|
@ -41,7 +41,7 @@ StatsTable::StatsTable()
|
||||
|
||||
|
||||
int* StatsCounter::FindLocationInStatsTable() const {
|
||||
return Isolate::Current()->stats_table()->FindLocation(name_);
|
||||
return isolate_->stats_table()->FindLocation(name_);
|
||||
}
|
||||
|
||||
|
||||
|
@ -116,8 +116,8 @@ class StatsTable {
|
||||
class StatsCounter {
|
||||
public:
|
||||
StatsCounter() { }
|
||||
explicit StatsCounter(const char* name)
|
||||
: name_(name), ptr_(NULL), lookup_done_(false) { }
|
||||
explicit StatsCounter(Isolate* isolate, const char* name)
|
||||
: isolate_(isolate), name_(name), ptr_(NULL), lookup_done_(false) { }
|
||||
|
||||
// Sets the counter to a specific value.
|
||||
void Set(int value) {
|
||||
@ -175,6 +175,7 @@ class StatsCounter {
|
||||
private:
|
||||
int* FindLocationInStatsTable() const;
|
||||
|
||||
Isolate* isolate_;
|
||||
const char* name_;
|
||||
int* ptr_;
|
||||
bool lookup_done_;
|
||||
|
@ -53,7 +53,7 @@ class CodeGenerator {
|
||||
// Print the code after compiling it.
|
||||
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,
|
||||
int pos,
|
||||
|
@ -3266,7 +3266,7 @@ void FullCodeGenerator::EmitLog(CallRuntime* expr) {
|
||||
// 2 (array): Arguments to the format string.
|
||||
ZoneList<Expression*>* args = expr->arguments();
|
||||
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(2));
|
||||
__ CallRuntime(Runtime::kLog, 2);
|
||||
|
@ -2239,7 +2239,7 @@ bool Isolate::Init(Deserializer* des) {
|
||||
InitializeThreadLocal();
|
||||
|
||||
bootstrapper_->Initialize(create_heap_objects);
|
||||
builtins_.SetUp(create_heap_objects);
|
||||
builtins_.SetUp(this, create_heap_objects);
|
||||
|
||||
// Only preallocate on the first initialization.
|
||||
if (FLAG_preallocate_message_memory && preallocated_message_space_ == NULL) {
|
||||
|
@ -49,31 +49,31 @@ Counters::Counters(Isolate* isolate) {
|
||||
#undef HM
|
||||
|
||||
#define SC(name, caption) \
|
||||
name##_ = StatsCounter("c:" #caption);
|
||||
name##_ = StatsCounter(isolate, "c:" #caption);
|
||||
|
||||
STATS_COUNTER_LIST_1(SC)
|
||||
STATS_COUNTER_LIST_2(SC)
|
||||
#undef SC
|
||||
|
||||
#define SC(name) \
|
||||
count_of_##name##_ = StatsCounter("c:" "V8.CountOf_" #name); \
|
||||
size_of_##name##_ = StatsCounter("c:" "V8.SizeOf_" #name);
|
||||
count_of_##name##_ = StatsCounter(isolate, "c:" "V8.CountOf_" #name); \
|
||||
size_of_##name##_ = StatsCounter(isolate, "c:" "V8.SizeOf_" #name);
|
||||
INSTANCE_TYPE_LIST(SC)
|
||||
#undef SC
|
||||
|
||||
#define SC(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##_ = \
|
||||
StatsCounter("c:" "V8.SizeOf_CODE_TYPE-" #name);
|
||||
StatsCounter(isolate, "c:" "V8.SizeOf_CODE_TYPE-" #name);
|
||||
CODE_KIND_LIST(SC)
|
||||
#undef SC
|
||||
|
||||
#define SC(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##_ = \
|
||||
StatsCounter("c:" "V8.SizeOf_FIXED_ARRAY-" #name);
|
||||
StatsCounter(isolate, "c:" "V8.SizeOf_FIXED_ARRAY-" #name);
|
||||
FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(SC)
|
||||
#undef SC
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ class CodeGenerator: public AstVisitor {
|
||||
// Print the code after compiling it.
|
||||
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,
|
||||
int pos,
|
||||
|
@ -3243,7 +3243,7 @@ void FullCodeGenerator::EmitLog(CallRuntime* expr) {
|
||||
// 2 (array): Arguments to the format string.
|
||||
ZoneList<Expression*>* args = expr->arguments();
|
||||
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(2));
|
||||
__ CallRuntime(Runtime::kLog, 2);
|
||||
|
Loading…
Reference in New Issue
Block a user