Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3021)

Unified Diff: src/compiler.cc

Issue 2840018: [Isolates] Moved more compilation-related globals (builtins, runtime, &c.)... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/isolates/
Patch Set: rebase Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/codegen.cc ('k') | src/debug.cc » ('j') | src/runtime.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler.cc
===================================================================
--- src/compiler.cc (revision 4955)
+++ src/compiler.cc (working copy)
@@ -162,7 +162,9 @@
#endif
-static Handle<SharedFunctionInfo> MakeFunctionInfo(bool is_global,
+static Handle<SharedFunctionInfo> MakeFunctionInfo(
+ Isolate* isolate,
+ bool is_global,
bool is_eval,
Compiler::ValidationState validate,
Handle<Script> script,
@@ -173,8 +175,8 @@
PostponeInterruptsScope postpone;
- ASSERT(!i::Isolate::Current()->global_context().is_null());
- script->set_context_data((*i::Isolate::Current()->global_context())->data());
+ ASSERT(!isolate->global_context().is_null());
+ script->set_context_data((*isolate->global_context())->data());
bool is_json = (validate == Compiler::VALIDATE_JSON);
#ifdef ENABLE_DEBUGGER_SUPPORT
@@ -197,7 +199,7 @@
}
// Notify debugger
- Isolate::Current()->debugger()->OnBeforeCompile(script);
+ isolate->debugger()->OnBeforeCompile(script);
#endif
// Only allow non-global compiles for eval.
@@ -207,11 +209,11 @@
FunctionLiteral* lit =
MakeAST(is_global, script, extension, pre_data, is_json);
- LiveEditFunctionTracker live_edit_tracker(lit);
+ LiveEditFunctionTracker live_edit_tracker(isolate, lit);
// Check for parse errors.
if (lit == NULL) {
- ASSERT(Isolate::Current()->has_pending_exception());
+ ASSERT(isolate->has_pending_exception());
return Handle<SharedFunctionInfo>::null();
}
@@ -229,7 +231,7 @@
// Check for stack-overflow exceptions.
if (code.is_null()) {
- Isolate::Current()->StackOverflow();
+ isolate->StackOverflow();
return Handle<SharedFunctionInfo>::null();
}
@@ -267,7 +269,7 @@
#ifdef ENABLE_DEBUGGER_SUPPORT
// Notify debugger
- Isolate::Current()->debugger()->OnAfterCompile(
+ isolate->debugger()->OnAfterCompile(
script, Debugger::NO_AFTER_COMPILE_FLAGS);
#endif
@@ -277,9 +279,6 @@
}
-static StaticResource<SafeStringInputBuffer> safe_string_input_buffer;
-
-
Handle<SharedFunctionInfo> Compiler::Compile(Handle<String> source,
Handle<Object> script_name,
int line_offset,
@@ -288,6 +287,7 @@
ScriptDataImpl* input_pre_data,
Handle<Object> script_data,
NativesFlag natives) {
+ Isolate* isolate = Isolate::Current();
int source_length = source->length();
Counters::total_load_size.Increment(source_length);
Counters::total_compile_size.Increment(source_length);
@@ -295,7 +295,7 @@
// The VM is in the COMPILER state until exiting this function.
VMState state(COMPILER);
- CompilationCache* compilation_cache = Isolate::Current()->compilation_cache();
+ CompilationCache* compilation_cache = isolate->compilation_cache();
// Do a lookup in the compilation cache but not for extensions.
Handle<SharedFunctionInfo> result;
@@ -310,7 +310,8 @@
// No cache entry found. Do pre-parsing and compile the script.
ScriptDataImpl* pre_data = input_pre_data;
if (pre_data == NULL && source_length >= FLAG_min_preparse_length) {
- Access<SafeStringInputBuffer> buf(&safe_string_input_buffer);
+ Access<SafeStringInputBuffer> buf(
+ isolate->compiler_safe_string_input_buffer());
buf->Reset(source.location());
pre_data = PreParse(source, buf.value(), extension);
}
@@ -330,7 +331,8 @@
: *script_data);
// Compile the function and add it to the cache.
- result = MakeFunctionInfo(true,
+ result = MakeFunctionInfo(isolate,
+ true,
false,
DONT_VALIDATE_JSON,
script,
@@ -347,7 +349,7 @@
}
}
- if (result.is_null()) Isolate::Current()->ReportPendingMessages();
+ if (result.is_null()) isolate->ReportPendingMessages();
return result;
}
@@ -356,6 +358,7 @@
Handle<Context> context,
bool is_global,
ValidationState validate) {
+ Isolate* isolate = Isolate::Current();
// Note that if validation is required then no path through this
// function is allowed to return a value without validating that
// the input is legal json.
@@ -367,7 +370,7 @@
// The VM is in the COMPILER state until exiting this function.
VMState state(COMPILER);
- CompilationCache* compilation_cache = Isolate::Current()->compilation_cache();
+ CompilationCache* compilation_cache = isolate->compilation_cache();
// Do a lookup in the compilation cache; if the entry is not there,
// invoke the compiler and add the result to the cache. If we're
@@ -380,7 +383,8 @@
if (result.is_null()) {
// Create a script object describing the script to be compiled.
Handle<Script> script = Factory::NewScript(source);
- result = MakeFunctionInfo(is_global,
+ result = MakeFunctionInfo(isolate,
+ is_global,
true,
validate,
script,
@@ -472,7 +476,8 @@
Handle<SharedFunctionInfo> Compiler::BuildFunctionInfo(FunctionLiteral* literal,
Handle<Script> script,
AstVisitor* caller) {
- LiveEditFunctionTracker live_edit_tracker(literal);
+ Isolate* isolate = Isolate::Current();
+ LiveEditFunctionTracker live_edit_tracker(isolate, literal);
#ifdef DEBUG
// We should not try to compile the same function literal more than
// once.
@@ -485,7 +490,7 @@
// since we have to know if a function uses the special natives
// syntax, which is something the parser records.
bool allow_lazy = literal->AllowsLazyCompilation() &&
- !LiveEditFunctionTracker::IsActive();
+ !LiveEditFunctionTracker::IsActive(isolate);
// Generate code
Handle<Code> code;
« no previous file with comments | « src/codegen.cc ('k') | src/debug.cc » ('j') | src/runtime.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698