| Index: src/liveedit.cc
|
| diff --git a/src/liveedit.cc b/src/liveedit.cc
|
| index 23e7b436f732799118b159e861f5021d90da5856..6f174c34d64b8c5351113e76e7fb4ff1d05e4fd7 100644
|
| --- a/src/liveedit.cc
|
| +++ b/src/liveedit.cc
|
| @@ -542,7 +542,7 @@ class TokenizingLineArrayCompareOutput : public SubrangableOutput {
|
|
|
| if (char_len1 < CHUNK_LEN_LIMIT && char_len2 < CHUNK_LEN_LIMIT) {
|
| // Chunk is small enough to conduct a nested token-level diff.
|
| - HandleScope subTaskScope;
|
| + HandleScope subTaskScope(s1_->GetIsolate());
|
|
|
| TokensCompareInput tokens_input(s1_, char_pos1, char_len1,
|
| s2_, char_pos2, char_len2);
|
| @@ -671,6 +671,9 @@ class JSArrayBasedStruct {
|
| Handle<JSArray> GetJSArray() {
|
| return array_;
|
| }
|
| + Isolate* isolate() const {
|
| + return array_->GetIsolate();
|
| + }
|
|
|
| protected:
|
| void SetField(int field_position, Handle<Object> value) {
|
| @@ -706,7 +709,7 @@ class FunctionInfoWrapper : public JSArrayBasedStruct<FunctionInfoWrapper> {
|
| void SetInitialProperties(Handle<String> name, int start_position,
|
| int end_position, int param_num,
|
| int literal_count, int parent_index) {
|
| - HandleScope scope;
|
| + HandleScope scope(isolate());
|
| this->SetField(kFunctionNameOffset_, name);
|
| this->SetSmiValueField(kStartPositionOffset_, start_position);
|
| this->SetSmiValueField(kEndPositionOffset_, end_position);
|
| @@ -788,7 +791,7 @@ class SharedInfoWrapper : public JSArrayBasedStruct<SharedInfoWrapper> {
|
|
|
| void SetProperties(Handle<String> name, int start_position, int end_position,
|
| Handle<SharedFunctionInfo> info) {
|
| - HandleScope scope;
|
| + HandleScope scope(isolate());
|
| this->SetField(kFunctionNameOffset_, name);
|
| Handle<JSValue> info_holder = WrapInJSValue(info);
|
| this->SetField(kSharedInfoOffset_, info_holder);
|
| @@ -822,7 +825,7 @@ class FunctionInfoListener {
|
| }
|
|
|
| void FunctionStarted(FunctionLiteral* fun) {
|
| - HandleScope scope;
|
| + HandleScope scope(result_->GetIsolate());
|
| FunctionInfoWrapper info = FunctionInfoWrapper::Create();
|
| info.SetInitialProperties(fun->name(), fun->start_position(),
|
| fun->end_position(), fun->parameter_count(),
|
| @@ -834,7 +837,7 @@ class FunctionInfoListener {
|
| }
|
|
|
| void FunctionDone() {
|
| - HandleScope scope;
|
| + HandleScope scope(result_->GetIsolate());
|
| FunctionInfoWrapper info =
|
| FunctionInfoWrapper::cast(
|
| result_->GetElementNoExceptionThrown(current_parent_index_));
|
| @@ -864,17 +867,18 @@ class FunctionInfoListener {
|
| Handle<Object>(shared->scope_info()));
|
| info.SetSharedFunctionInfo(shared);
|
|
|
| - Handle<Object> scope_info_list(SerializeFunctionScope(scope, zone));
|
| + Handle<Object> scope_info_list(
|
| + SerializeFunctionScope(shared->GetIsolate(), scope, zone));
|
| info.SetOuterScopeInfo(scope_info_list);
|
| }
|
|
|
| Handle<JSArray> GetResult() { return result_; }
|
|
|
| private:
|
| - Object* SerializeFunctionScope(Scope* scope, Zone* zone) {
|
| - HandleScope handle_scope;
|
| + Object* SerializeFunctionScope(Isolate* isolate, Scope* scope, Zone* zone) {
|
| + HandleScope handle_scope(isolate);
|
|
|
| - Handle<JSArray> scope_info_list = FACTORY->NewJSArray(10);
|
| + Handle<JSArray> scope_info_list = isolate->factory()->NewJSArray(10);
|
| int scope_info_length = 0;
|
|
|
| // Saves some description of scope. It stores name and indexes of
|
| @@ -882,7 +886,7 @@ class FunctionInfoListener {
|
| // scopes of this chain.
|
| Scope* outer_scope = scope->outer_scope();
|
| if (outer_scope == NULL) {
|
| - return HEAP->undefined_value();
|
| + return isolate->heap()->undefined_value();
|
| }
|
| do {
|
| ZoneList<Variable*> stack_list(outer_scope->StackLocalCount(), zone);
|
| @@ -903,7 +907,7 @@ class FunctionInfoListener {
|
| }
|
| SetElementNonStrict(scope_info_list,
|
| scope_info_length,
|
| - Handle<Object>(HEAP->null_value()));
|
| + Handle<Object>(isolate->heap()->null_value()));
|
| scope_info_length++;
|
|
|
| outer_scope = outer_scope->outer_scope();
|
| @@ -983,7 +987,7 @@ JSArray* LiveEdit::GatherCompileInfo(Handle<Script> script,
|
|
|
|
|
| void LiveEdit::WrapSharedFunctionInfos(Handle<JSArray> array) {
|
| - HandleScope scope;
|
| + HandleScope scope(array->GetIsolate());
|
| int len = GetArrayLength(array);
|
| for (int i = 0; i < len; i++) {
|
| Handle<SharedFunctionInfo> info(
|
| @@ -1251,8 +1255,8 @@ static void DeoptimizeDependentFunctions(SharedFunctionInfo* function_info) {
|
| MaybeObject* LiveEdit::ReplaceFunctionCode(
|
| Handle<JSArray> new_compile_info_array,
|
| Handle<JSArray> shared_info_array) {
|
| - HandleScope scope;
|
| Isolate* isolate = Isolate::Current();
|
| + HandleScope scope(isolate);
|
|
|
| if (!SharedInfoWrapper::IsInstance(shared_info_array)) {
|
| return isolate->ThrowIllegalOperation();
|
| @@ -1263,7 +1267,7 @@ MaybeObject* LiveEdit::ReplaceFunctionCode(
|
|
|
| Handle<SharedFunctionInfo> shared_info = shared_info_wrapper.GetInfo();
|
|
|
| - HEAP->EnsureHeapIsIterable();
|
| + isolate->heap()->EnsureHeapIsIterable();
|
|
|
| if (IsJSFunctionCode(shared_info->code())) {
|
| Handle<Code> code = compile_info_wrapper.GetFunctionCode();
|
| @@ -1289,31 +1293,31 @@ MaybeObject* LiveEdit::ReplaceFunctionCode(
|
| LiteralFixer::PatchLiterals(&compile_info_wrapper, shared_info, isolate);
|
|
|
| shared_info->set_construct_stub(
|
| - Isolate::Current()->builtins()->builtin(
|
| - Builtins::kJSConstructStubGeneric));
|
| + isolate->builtins()->builtin(Builtins::kJSConstructStubGeneric));
|
|
|
| DeoptimizeDependentFunctions(*shared_info);
|
| - Isolate::Current()->compilation_cache()->Remove(shared_info);
|
| + isolate->compilation_cache()->Remove(shared_info);
|
|
|
| - return HEAP->undefined_value();
|
| + return isolate->heap()->undefined_value();
|
| }
|
|
|
|
|
| MaybeObject* LiveEdit::FunctionSourceUpdated(
|
| Handle<JSArray> shared_info_array) {
|
| - HandleScope scope;
|
| + Isolate* isolate = shared_info_array->GetIsolate();
|
| + HandleScope scope(isolate);
|
|
|
| if (!SharedInfoWrapper::IsInstance(shared_info_array)) {
|
| - return Isolate::Current()->ThrowIllegalOperation();
|
| + return isolate->ThrowIllegalOperation();
|
| }
|
|
|
| SharedInfoWrapper shared_info_wrapper(shared_info_array);
|
| Handle<SharedFunctionInfo> shared_info = shared_info_wrapper.GetInfo();
|
|
|
| DeoptimizeDependentFunctions(*shared_info);
|
| - Isolate::Current()->compilation_cache()->Remove(shared_info);
|
| + isolate->compilation_cache()->Remove(shared_info);
|
|
|
| - return HEAP->undefined_value();
|
| + return isolate->heap()->undefined_value();
|
| }
|
|
|
|
|
| @@ -1814,7 +1818,7 @@ static const char* DropActivationsInActiveThreadImpl(
|
| Isolate* isolate = Isolate::Current();
|
| Debug* debug = isolate->debug();
|
| ZoneScope scope(zone, DELETE_ON_EXIT);
|
| - Vector<StackFrame*> frames = CreateStackMap(zone);
|
| + Vector<StackFrame*> frames = CreateStackMap(isolate, zone);
|
|
|
|
|
| int top_frame_index = -1;
|
|
|