| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "include/dart_api.h" | 5 #include "include/dart_api.h" |
| 6 #include "platform/assert.h" | 6 #include "platform/assert.h" |
| 7 #include "platform/json.h" | 7 #include "platform/json.h" |
| 8 #include "platform/utils.h" | 8 #include "platform/utils.h" |
| 9 #include "vm/class_finalizer.h" | 9 #include "vm/class_finalizer.h" |
| 10 #include "vm/dart_api_impl.h" | 10 #include "vm/dart_api_impl.h" |
| (...skipping 5918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5929 } | 5929 } |
| 5930 | 5930 |
| 5931 | 5931 |
| 5932 static bool RunLoopTestCallback(const char* script_name, | 5932 static bool RunLoopTestCallback(const char* script_name, |
| 5933 const char* main, | 5933 const char* main, |
| 5934 void* data, | 5934 void* data, |
| 5935 char** error) { | 5935 char** error) { |
| 5936 const char* kScriptChars = | 5936 const char* kScriptChars = |
| 5937 "#import('builtin');\n" | 5937 "#import('builtin');\n" |
| 5938 "#import('dart:isolate');\n" | 5938 "#import('dart:isolate');\n" |
| 5939 "class MyIsolate extends Isolate {\n" | 5939 "void entry() {\n" |
| 5940 " MyIsolate() : super() { }\n" | 5940 " port.receive((message, replyTo) {\n" |
| 5941 " void main() {\n" | 5941 " if (message) {\n" |
| 5942 " port.receive((message, replyTo) {\n" | 5942 " throw new Exception('MakeChildExit');\n" |
| 5943 " if (message) {\n" | 5943 " } else {\n" |
| 5944 " throw new Exception('MakeChildExit');\n" | 5944 " replyTo.call('hello');\n" |
| 5945 " } else {\n" | 5945 " port.close();\n" |
| 5946 " replyTo.call('hello');\n" | 5946 " }\n" |
| 5947 " port.close();\n" | 5947 " });\n" |
| 5948 " }\n" | |
| 5949 " });\n" | |
| 5950 " }\n" | |
| 5951 "}\n" | 5948 "}\n" |
| 5952 "\n" | 5949 "\n" |
| 5953 "void main(exc_child, exc_parent) {\n" | 5950 "void main(exc_child, exc_parent) {\n" |
| 5954 " new MyIsolate().spawn().then((port) {\n" | 5951 " var port = spawnFunction(entry);\n" |
| 5955 " port.call(exc_child).then((message) {\n" | 5952 " port.call(exc_child).then((message) {\n" |
| 5956 " if (message != 'hello') throw new Exception('ShouldNotHappen');\n" | 5953 " if (message != 'hello') throw new Exception('ShouldNotHappen');\n" |
| 5957 " if (exc_parent) throw new Exception('MakeParentExit');\n" | 5954 " if (exc_parent) throw new Exception('MakeParentExit');\n" |
| 5958 " });\n" | |
| 5959 " });\n" | 5955 " });\n" |
| 5960 "}\n"; | 5956 "}\n"; |
| 5961 | 5957 |
| 5962 if (Dart_CurrentIsolate() != NULL) { | 5958 if (Dart_CurrentIsolate() != NULL) { |
| 5963 Dart_ExitIsolate(); | 5959 Dart_ExitIsolate(); |
| 5964 } | 5960 } |
| 5965 Dart_Isolate isolate = TestCase::CreateTestIsolate(); | 5961 Dart_Isolate isolate = TestCase::CreateTestIsolate(); |
| 5966 ASSERT(isolate != NULL); | 5962 ASSERT(isolate != NULL); |
| 5967 Dart_EnterScope(); | 5963 Dart_EnterScope(); |
| 5968 Dart_Handle url = Dart_NewString(TestCase::url()); | 5964 Dart_Handle url = Dart_NewString(TestCase::url()); |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6537 EXPECT(Dart_IsString(str)); | 6533 EXPECT(Dart_IsString(str)); |
| 6538 len = -1; | 6534 len = -1; |
| 6539 EXPECT_VALID(Dart_StringLength(str, &len)); | 6535 EXPECT_VALID(Dart_StringLength(str, &len)); |
| 6540 EXPECT_EQ(0, len); | 6536 EXPECT_EQ(0, len); |
| 6541 } | 6537 } |
| 6542 | 6538 |
| 6543 | 6539 |
| 6544 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 6540 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
| 6545 | 6541 |
| 6546 } // namespace dart | 6542 } // namespace dart |
| OLD | NEW |