Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(577)

Unified Diff: runtime/lib/isolate.cc

Issue 1154673004: Add "checked" parameter to Isolate.spawnUri. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Skip test for everything but VM for now. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/lib/isolate_patch.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/lib/isolate.cc
diff --git a/runtime/lib/isolate.cc b/runtime/lib/isolate.cc
index 1e08dad0b5edabec1fb148db98b624f54d9695a8..01c02efcf64813e2414ab9992dfad1fa5343c586 100644
--- a/runtime/lib/isolate.cc
+++ b/runtime/lib/isolate.cc
@@ -181,8 +181,13 @@ static bool CreateIsolate(Isolate* parent_isolate,
if (child_isolate == NULL) {
return false;
}
+ // TODO(iposva): Evaluate whether it's ok to override the embedder's setup.
+ // Currently the strict_compilation flag is ignored if it's false and
+ // checked-mode was enabled using a command-line flag. The command-line flag
+ // overrides the user code's request.
+ child_isolate->set_strict_compilation(state->checked_mode());
if (!state->is_spawn_uri()) {
- // For isolates spawned using the spawnFunction semantics we set
+ // For isolates spawned using the spawn semantics we set
// the origin_id to the origin_id of the parent isolate.
child_isolate->set_origin_id(parent_isolate->origin_id());
}
@@ -229,10 +234,12 @@ DEFINE_NATIVE_ENTRY(Isolate_spawnFunction, 4) {
#endif
// Get the parent function so that we get the right function name.
func = func.parent_function();
+ bool checkedFlag = isolate->strict_compilation();
Spawn(isolate, new IsolateSpawnState(port.Id(),
func,
message,
- paused.value()));
+ paused.value(),
+ checkedFlag));
return Object::null();
}
}
@@ -243,13 +250,14 @@ DEFINE_NATIVE_ENTRY(Isolate_spawnFunction, 4) {
}
-DEFINE_NATIVE_ENTRY(Isolate_spawnUri, 6) {
+DEFINE_NATIVE_ENTRY(Isolate_spawnUri, 7) {
GET_NON_NULL_NATIVE_ARGUMENT(SendPort, port, arguments->NativeArgAt(0));
GET_NON_NULL_NATIVE_ARGUMENT(String, uri, arguments->NativeArgAt(1));
GET_NON_NULL_NATIVE_ARGUMENT(Instance, args, arguments->NativeArgAt(2));
GET_NON_NULL_NATIVE_ARGUMENT(Instance, message, arguments->NativeArgAt(3));
GET_NON_NULL_NATIVE_ARGUMENT(Bool, paused, arguments->NativeArgAt(4));
- GET_NATIVE_ARGUMENT(String, package_root, arguments->NativeArgAt(5));
+ GET_NATIVE_ARGUMENT(Bool, checked, arguments->NativeArgAt(5));
+ GET_NATIVE_ARGUMENT(String, package_root, arguments->NativeArgAt(6));
// Canonicalize the uri with respect to the current isolate.
char* error = NULL;
@@ -270,12 +278,20 @@ DEFINE_NATIVE_ENTRY(Isolate_spawnUri, 6) {
utf8_package_root[len] = '\0';
}
+ bool checkedFlag;
+ if (checked.IsNull()) {
+ checkedFlag = isolate->strict_compilation();
+ } else {
+ checkedFlag = checked.value();
+ }
+
Spawn(isolate, new IsolateSpawnState(port.Id(),
canonical_uri,
utf8_package_root,
args,
message,
- paused.value()));
+ paused.value(),
+ checkedFlag));
return Object::null();
}
« no previous file with comments | « no previous file | runtime/lib/isolate_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698