| Index: src/compiler.cc
|
| diff --git a/src/compiler.cc b/src/compiler.cc
|
| index 4e944f7fcda41fdde7cbd60e7f5931be9dfc69bd..fded1e2b86e014c35828cf823df420d5d2090dc1 100644
|
| --- a/src/compiler.cc
|
| +++ b/src/compiler.cc
|
| @@ -1149,10 +1149,6 @@ Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) {
|
|
|
| Handle<Script> script = parse_info->script();
|
|
|
| - // TODO(svenpanne) Obscure place for this, perhaps move to OnBeforeCompile?
|
| - FixedArray* array = isolate->native_context()->embedder_data();
|
| - script->set_context_data(array->get(v8::Context::kDebugIdIndex));
|
| -
|
| Handle<SharedFunctionInfo> result;
|
|
|
| { VMState<COMPILER> state(info->isolate());
|
| @@ -1509,17 +1505,17 @@ MaybeHandle<JSFunction> Compiler::GetFunctionFromEval(
|
| CompilationCache* compilation_cache = isolate->compilation_cache();
|
| InfoVectorPair eval_result = compilation_cache->LookupEval(
|
| source, outer_info, context, language_mode, position);
|
| - Handle<SharedFunctionInfo> shared_info;
|
| - if (eval_result.has_shared()) {
|
| - shared_info = Handle<SharedFunctionInfo>(eval_result.shared(), isolate);
|
| - }
|
| Handle<Cell> vector;
|
| if (eval_result.has_vector()) {
|
| vector = Handle<Cell>(eval_result.vector(), isolate);
|
| }
|
|
|
| + Handle<SharedFunctionInfo> shared_info;
|
| Handle<Script> script;
|
| - if (!eval_result.has_shared()) {
|
| + if (eval_result.has_shared()) {
|
| + shared_info = Handle<SharedFunctionInfo>(eval_result.shared(), isolate);
|
| + script = Handle<Script>(Script::cast(shared_info->script()), isolate);
|
| + } else {
|
| script = isolate->factory()->NewScript(source);
|
| if (isolate->NeedsSourcePositionsForProfiling()) {
|
| Script::InitLineEnds(script);
|
| @@ -1690,13 +1686,14 @@ Handle<SharedFunctionInfo> Compiler::GetSharedFunctionInfoForScript(
|
| if (CodeSerializer::Deserialize(isolate, *cached_data, source)
|
| .ToHandle(&inner_result)) {
|
| // Promote to per-isolate compilation cache.
|
| - // TODO(mvstanton): create a feedback vector array here.
|
| DCHECK(inner_result->is_compiled());
|
| Handle<FeedbackVector> feedback_vector =
|
| FeedbackVector::New(isolate, inner_result);
|
| vector = isolate->factory()->NewCell(feedback_vector);
|
| compilation_cache->PutScript(source, context, language_mode,
|
| inner_result, vector);
|
| + Handle<Script> script(Script::cast(inner_result->script()), isolate);
|
| + isolate->debug()->OnAfterCompile(script);
|
| return inner_result;
|
| }
|
| // Deserializer failed. Fall through to compile.
|
|
|