Index: src/runtime/runtime-liveedit.cc |
diff --git a/src/runtime/runtime-liveedit.cc b/src/runtime/runtime-liveedit.cc |
index a19ccaa5847140b093efb65cce16c3a031624292..7cd60d32f1fb0d453f9e30b131f7a1242503ffea 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(args.length() == 2); |
Toon Verwaest
2016/12/06 21:10:14
DCHECK_EQ
jochen (gone - plz use gerrit)
2016/12/07 15:57:01
done
|
+ CONVERT_ARG_CHECKED(JSValue, script_value, 0); |
+ CONVERT_NUMBER_CHECKED(int, max_function_literal_id, Int32, args[1]); |
jgruber
2016/12/07 08:31:27
Nit: CONVERT_INT32_ARG_CHECKED here and below.
jochen (gone - plz use gerrit)
2016/12/07 15:57:01
done
|
+ |
+ 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(args.length() == 2); |
CONVERT_ARG_HANDLE_CHECKED(JSArray, shared_info, 0); |
+ CONVERT_NUMBER_CHECKED(int, new_function_literal_id, Int32, args[1]); |
CHECK(SharedInfoWrapper::IsInstance(shared_info)); |
- LiveEdit::FunctionSourceUpdated(shared_info); |
+ LiveEdit::FunctionSourceUpdated(shared_info, new_function_literal_id); |
return isolate->heap()->undefined_value(); |
} |