| Index: src/runtime/runtime-liveedit.cc
|
| diff --git a/src/runtime/runtime-liveedit.cc b/src/runtime/runtime-liveedit.cc
|
| index dd3405a44cd811f74f1d7ac61a80ceef4a0979b4..189ec08d33d4428a3674d29564c583549fbd27b5 100644
|
| --- a/src/runtime/runtime-liveedit.cc
|
| +++ b/src/runtime/runtime-liveedit.cc
|
| @@ -200,22 +200,34 @@ RUNTIME_FUNCTION(Runtime_LiveEditPatchFunctionPositions) {
|
| RUNTIME_FUNCTION(Runtime_LiveEditCheckAndDropActivations) {
|
| HandleScope scope(isolate);
|
| CHECK(isolate->debug()->live_edit_enabled());
|
| - DCHECK(args.length() == 2);
|
| - CONVERT_ARG_HANDLE_CHECKED(JSArray, shared_array, 0);
|
| - CONVERT_BOOLEAN_ARG_CHECKED(do_drop, 1);
|
| - RUNTIME_ASSERT(shared_array->length()->IsSmi());
|
| - RUNTIME_ASSERT(shared_array->HasFastElements())
|
| - int array_length = Smi::cast(shared_array->length())->value();
|
| + DCHECK(args.length() == 3);
|
| + CONVERT_ARG_HANDLE_CHECKED(JSArray, old_shared_array, 0);
|
| + CONVERT_ARG_HANDLE_CHECKED(JSArray, new_shared_array, 1);
|
| + CONVERT_BOOLEAN_ARG_CHECKED(do_drop, 2);
|
| + USE(new_shared_array);
|
| + RUNTIME_ASSERT(old_shared_array->length()->IsSmi());
|
| + RUNTIME_ASSERT(new_shared_array->length() == old_shared_array->length());
|
| + RUNTIME_ASSERT(old_shared_array->HasFastElements())
|
| + RUNTIME_ASSERT(new_shared_array->HasFastElements())
|
| + int array_length = Smi::cast(old_shared_array->length())->value();
|
| for (int i = 0; i < array_length; i++) {
|
| - Handle<Object> element;
|
| + Handle<Object> old_element;
|
| + Handle<Object> new_element;
|
| + ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
|
| + isolate, old_element, Object::GetElement(isolate, old_shared_array, i));
|
| + RUNTIME_ASSERT(
|
| + old_element->IsJSValue() &&
|
| + Handle<JSValue>::cast(old_element)->value()->IsSharedFunctionInfo());
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
|
| - isolate, element, Object::GetElement(isolate, shared_array, i));
|
| + isolate, new_element, Object::GetElement(isolate, new_shared_array, i));
|
| RUNTIME_ASSERT(
|
| - element->IsJSValue() &&
|
| - Handle<JSValue>::cast(element)->value()->IsSharedFunctionInfo());
|
| + new_element->IsUndefined() ||
|
| + (new_element->IsJSValue() &&
|
| + Handle<JSValue>::cast(new_element)->value()->IsSharedFunctionInfo()));
|
| }
|
|
|
| - return *LiveEdit::CheckAndDropActivations(shared_array, do_drop);
|
| + return *LiveEdit::CheckAndDropActivations(old_shared_array, new_shared_array,
|
| + do_drop);
|
| }
|
|
|
|
|
|
|