Chromium Code Reviews| Index: runtime/lib/isolate.cc |
| diff --git a/runtime/lib/isolate.cc b/runtime/lib/isolate.cc |
| index 1e08dad0b5edabec1fb148db98b624f54d9695a8..0b12cc5ad7dff0329545b3463358f16693dde565 100644 |
| --- a/runtime/lib/isolate.cc |
| +++ b/runtime/lib/isolate.cc |
| @@ -181,8 +181,9 @@ static bool CreateIsolate(Isolate* parent_isolate, |
| if (child_isolate == NULL) { |
| return false; |
| } |
| + child_isolate->set_strict_compilation(state->checked_mode()); |
|
Ivan Posva
2015/06/02 17:49:31
Please add:
// TODO(iposva): Evaluate whether it i
Lasse Reichstein Nielsen
2015/06/03 06:55:25
Done.
|
| 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 +230,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 +246,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 +274,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(); |
| } |