Index: src/runtime/runtime-liveedit.cc |
diff --git a/src/runtime/runtime-liveedit.cc b/src/runtime/runtime-liveedit.cc |
index a19ccaa5847140b093efb65cce16c3a031624292..7011ea7c8a12c61fe73e3fb2d13c00180b71476f 100644 |
--- a/src/runtime/runtime-liveedit.cc |
+++ b/src/runtime/runtime-liveedit.cc |
@@ -100,15 +100,31 @@ RUNTIME_FUNCTION(Runtime_LiveEditReplaceScript) { |
} |
} |
+// Recreate the shared function infos array after changing the IDs of all |
+// SharedFunctionInfos. |
+RUNTIME_FUNCTION(Runtime_LiveEditFixupScript) { |
+ HandleScope scope(isolate); |
+ CHECK(isolate->debug()->live_edit_enabled()); |
+ DCHECK_EQ(args.length(), 2); |
+ CONVERT_ARG_CHECKED(JSValue, script_value, 0); |
+ CONVERT_INT32_ARG_CHECKED(max_function_literal_id, 1); |
+ |
+ CHECK(script_value->value()->IsScript()); |
+ Handle<Script> script(Script::cast(script_value->value())); |
+ |
+ LiveEdit::FixupScript(script, max_function_literal_id); |
+ return isolate->heap()->undefined_value(); |
+} |
RUNTIME_FUNCTION(Runtime_LiveEditFunctionSourceUpdated) { |
HandleScope scope(isolate); |
CHECK(isolate->debug()->live_edit_enabled()); |
- DCHECK(args.length() == 1); |
+ DCHECK_EQ(args.length(), 2); |
CONVERT_ARG_HANDLE_CHECKED(JSArray, shared_info, 0); |
+ CONVERT_INT32_ARG_CHECKED(new_function_literal_id, 1); |
CHECK(SharedInfoWrapper::IsInstance(shared_info)); |
- LiveEdit::FunctionSourceUpdated(shared_info); |
+ LiveEdit::FunctionSourceUpdated(shared_info, new_function_literal_id); |
return isolate->heap()->undefined_value(); |
} |