| 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_debugger_api.h" | 5 #include "include/dart_debugger_api.h" |
| 6 #include "include/dart_mirrors_api.h" | 6 #include "include/dart_mirrors_api.h" |
| 7 #include "platform/assert.h" | 7 #include "platform/assert.h" |
| 8 #include "vm/dart_api_impl.h" | 8 #include "vm/dart_api_impl.h" |
| 9 #include "vm/thread.h" | 9 #include "vm/thread.h" |
| 10 #include "vm/unit_test.h" | 10 #include "vm/unit_test.h" |
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 buffer_size -= pos; | 382 buffer_size -= pos; |
| 383 } | 383 } |
| 384 pos = OS::SNPrint(buffer, buffer_size, "}\n"); | 384 pos = OS::SNPrint(buffer, buffer_size, "}\n"); |
| 385 buffer += pos; | 385 buffer += pos; |
| 386 buffer_size -= pos; | 386 buffer_size -= pos; |
| 387 } | 387 } |
| 388 } | 388 } |
| 389 | 389 |
| 390 | 390 |
| 391 static void InspectOptimizedStack_Breakpoint(Dart_IsolateId isolate_id, | 391 static void InspectOptimizedStack_Breakpoint(Dart_IsolateId isolate_id, |
| 392 intptr_t bp_id, |
| 392 const Dart_CodeLocation& loc) { | 393 const Dart_CodeLocation& loc) { |
| 393 Dart_StackTrace trace; | 394 Dart_StackTrace trace; |
| 394 Dart_GetStackTrace(&trace); | 395 Dart_GetStackTrace(&trace); |
| 395 SaveStackTrace(trace); | 396 SaveStackTrace(trace); |
| 396 } | 397 } |
| 397 | 398 |
| 398 | 399 |
| 399 static void InspectStackTest(bool optimize) { | 400 static void InspectStackTest(bool optimize) { |
| 400 const char* kScriptChars = | 401 const char* kScriptChars = |
| 401 "void breakpointNow() {\n" | 402 "void breakpointNow() {\n" |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 576 InspectStackWithClosureTest(false); | 577 InspectStackWithClosureTest(false); |
| 577 } | 578 } |
| 578 | 579 |
| 579 | 580 |
| 580 TEST_CASE(Debug_InspectStackWithClosure_Optimized) { | 581 TEST_CASE(Debug_InspectStackWithClosure_Optimized) { |
| 581 InspectStackWithClosureTest(true); | 582 InspectStackWithClosureTest(true); |
| 582 } | 583 } |
| 583 | 584 |
| 584 | 585 |
| 585 void TestStepOutHandler(Dart_IsolateId isolate_id, | 586 void TestStepOutHandler(Dart_IsolateId isolate_id, |
| 587 intptr_t bp_id, |
| 586 const Dart_CodeLocation& location) { | 588 const Dart_CodeLocation& location) { |
| 587 Dart_StackTrace trace; | 589 Dart_StackTrace trace; |
| 588 Dart_GetStackTrace(&trace); | 590 Dart_GetStackTrace(&trace); |
| 589 const char* expected_bpts[] = {"f1", "foo", "main"}; | 591 const char* expected_bpts[] = {"f1", "foo", "main"}; |
| 590 const intptr_t expected_bpts_length = ARRAY_SIZE(expected_bpts); | 592 const intptr_t expected_bpts_length = ARRAY_SIZE(expected_bpts); |
| 591 intptr_t trace_len; | 593 intptr_t trace_len; |
| 592 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); | 594 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); |
| 593 EXPECT_VALID(res); | 595 EXPECT_VALID(res); |
| 594 EXPECT(breakpoint_hit_counter < expected_bpts_length); | 596 EXPECT(breakpoint_hit_counter < expected_bpts_length); |
| 595 Dart_ActivationFrame frame; | 597 Dart_ActivationFrame frame; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 Dart_Handle retval = Invoke("main"); | 642 Dart_Handle retval = Invoke("main"); |
| 641 EXPECT_VALID(retval); | 643 EXPECT_VALID(retval); |
| 642 EXPECT(Dart_IsInteger(retval)); | 644 EXPECT(Dart_IsInteger(retval)); |
| 643 int64_t int_value = ToInt64(retval); | 645 int64_t int_value = ToInt64(retval); |
| 644 EXPECT_EQ(2, int_value); | 646 EXPECT_EQ(2, int_value); |
| 645 EXPECT(breakpoint_hit == true); | 647 EXPECT(breakpoint_hit == true); |
| 646 } | 648 } |
| 647 | 649 |
| 648 | 650 |
| 649 void TestStepIntoHandler(Dart_IsolateId isolate_id, | 651 void TestStepIntoHandler(Dart_IsolateId isolate_id, |
| 652 intptr_t bp_id, |
| 650 const Dart_CodeLocation& location) { | 653 const Dart_CodeLocation& location) { |
| 651 Dart_StackTrace trace; | 654 Dart_StackTrace trace; |
| 652 Dart_GetStackTrace(&trace); | 655 Dart_GetStackTrace(&trace); |
| 653 const char* expected_bpts[] = { | 656 const char* expected_bpts[] = { |
| 654 "main", | 657 "main", |
| 655 "foo", | 658 "foo", |
| 656 "f1", | 659 "f1", |
| 657 "foo", | 660 "foo", |
| 658 "X.X.", | 661 "X.X.", |
| 659 "X.X.", | 662 "X.X.", |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 721 Dart_Handle retval = Invoke("main"); | 724 Dart_Handle retval = Invoke("main"); |
| 722 EXPECT_VALID(retval); | 725 EXPECT_VALID(retval); |
| 723 EXPECT(Dart_IsInteger(retval)); | 726 EXPECT(Dart_IsInteger(retval)); |
| 724 int64_t int_value = ToInt64(retval); | 727 int64_t int_value = ToInt64(retval); |
| 725 EXPECT_EQ(7, int_value); | 728 EXPECT_EQ(7, int_value); |
| 726 EXPECT(breakpoint_hit == true); | 729 EXPECT(breakpoint_hit == true); |
| 727 } | 730 } |
| 728 | 731 |
| 729 | 732 |
| 730 static void StepIntoHandler(Dart_IsolateId isolate_id, | 733 static void StepIntoHandler(Dart_IsolateId isolate_id, |
| 734 intptr_t bp_id, |
| 731 const Dart_CodeLocation& location) { | 735 const Dart_CodeLocation& location) { |
| 732 Dart_StackTrace trace; | 736 Dart_StackTrace trace; |
| 733 Dart_GetStackTrace(&trace); | 737 Dart_GetStackTrace(&trace); |
| 734 if (verbose) { | 738 if (verbose) { |
| 735 OS::Print(">>> Breakpoint nr. %d in %s <<<\n", | 739 OS::Print(">>> Breakpoint nr. %d in %s <<<\n", |
| 736 breakpoint_hit_counter, BreakpointInfo(trace)); | 740 breakpoint_hit_counter, BreakpointInfo(trace)); |
| 737 PrintStackTrace(trace); | 741 PrintStackTrace(trace); |
| 738 } | 742 } |
| 739 breakpoint_hit = true; | 743 breakpoint_hit = true; |
| 740 breakpoint_hit_counter++; | 744 breakpoint_hit_counter++; |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 803 Dart_Handle retval = Invoke("main"); | 807 Dart_Handle retval = Invoke("main"); |
| 804 EXPECT_VALID(retval); | 808 EXPECT_VALID(retval); |
| 805 EXPECT(Dart_IsInteger(retval)); | 809 EXPECT(Dart_IsInteger(retval)); |
| 806 int64_t int_value = ToInt64(retval); | 810 int64_t int_value = ToInt64(retval); |
| 807 EXPECT_EQ(2 * 99, int_value); | 811 EXPECT_EQ(2 * 99, int_value); |
| 808 EXPECT(breakpoint_hit == true); | 812 EXPECT(breakpoint_hit == true); |
| 809 } | 813 } |
| 810 | 814 |
| 811 | 815 |
| 812 void TestSingleStepHandler(Dart_IsolateId isolate_id, | 816 void TestSingleStepHandler(Dart_IsolateId isolate_id, |
| 817 intptr_t bp_id, |
| 813 const Dart_CodeLocation& location) { | 818 const Dart_CodeLocation& location) { |
| 814 Dart_StackTrace trace; | 819 Dart_StackTrace trace; |
| 815 Dart_GetStackTrace(&trace); | 820 Dart_GetStackTrace(&trace); |
| 816 const char* expected_bpts[] = { | 821 const char* expected_bpts[] = { |
| 817 "moo", "foo", "moo", "foo", "moo", "foo", "main"}; | 822 "moo", "foo", "moo", "foo", "moo", "foo", "main"}; |
| 818 const intptr_t expected_bpts_length = ARRAY_SIZE(expected_bpts); | 823 const intptr_t expected_bpts_length = ARRAY_SIZE(expected_bpts); |
| 819 intptr_t trace_len; | 824 intptr_t trace_len; |
| 820 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); | 825 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); |
| 821 EXPECT_VALID(res); | 826 EXPECT_VALID(res); |
| 822 EXPECT(breakpoint_hit_counter < expected_bpts_length); | 827 EXPECT(breakpoint_hit_counter < expected_bpts_length); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 862 | 867 |
| 863 breakpoint_hit = false; | 868 breakpoint_hit = false; |
| 864 breakpoint_hit_counter = 0; | 869 breakpoint_hit_counter = 0; |
| 865 Dart_Handle retval = Invoke("main"); | 870 Dart_Handle retval = Invoke("main"); |
| 866 EXPECT_VALID(retval); | 871 EXPECT_VALID(retval); |
| 867 EXPECT(breakpoint_hit == true); | 872 EXPECT(breakpoint_hit == true); |
| 868 } | 873 } |
| 869 | 874 |
| 870 | 875 |
| 871 static void ClosureBreakpointHandler(Dart_IsolateId isolate_id, | 876 static void ClosureBreakpointHandler(Dart_IsolateId isolate_id, |
| 877 intptr_t bp_id, |
| 872 const Dart_CodeLocation& location) { | 878 const Dart_CodeLocation& location) { |
| 873 Dart_StackTrace trace; | 879 Dart_StackTrace trace; |
| 874 Dart_GetStackTrace(&trace); | 880 Dart_GetStackTrace(&trace); |
| 875 const char* expected_trace[] = {"callback", "main"}; | 881 const char* expected_trace[] = {"callback", "main"}; |
| 876 const intptr_t expected_trace_length = 2; | 882 const intptr_t expected_trace_length = 2; |
| 877 breakpoint_hit_counter++; | 883 breakpoint_hit_counter++; |
| 878 intptr_t trace_len; | 884 intptr_t trace_len; |
| 879 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); | 885 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); |
| 880 EXPECT_VALID(res); | 886 EXPECT_VALID(res); |
| 881 EXPECT_EQ(expected_trace_length, trace_len); | 887 EXPECT_EQ(expected_trace_length, trace_len); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 916 breakpoint_hit_counter = 0; | 922 breakpoint_hit_counter = 0; |
| 917 Dart_Handle retval = Invoke("main"); | 923 Dart_Handle retval = Invoke("main"); |
| 918 EXPECT_VALID(retval); | 924 EXPECT_VALID(retval); |
| 919 int64_t int_value = ToInt64(retval); | 925 int64_t int_value = ToInt64(retval); |
| 920 EXPECT_EQ(442, int_value); | 926 EXPECT_EQ(442, int_value); |
| 921 EXPECT_EQ(2, breakpoint_hit_counter); | 927 EXPECT_EQ(2, breakpoint_hit_counter); |
| 922 } | 928 } |
| 923 | 929 |
| 924 | 930 |
| 925 static void ExprClosureBreakpointHandler(Dart_IsolateId isolate_id, | 931 static void ExprClosureBreakpointHandler(Dart_IsolateId isolate_id, |
| 932 intptr_t bp_id, |
| 926 const Dart_CodeLocation& location) { | 933 const Dart_CodeLocation& location) { |
| 927 Dart_StackTrace trace; | 934 Dart_StackTrace trace; |
| 928 Dart_GetStackTrace(&trace); | 935 Dart_GetStackTrace(&trace); |
| 929 static const char* expected_trace[] = {"<anonymous closure>", "main"}; | 936 static const char* expected_trace[] = {"<anonymous closure>", "main"}; |
| 930 Dart_Handle add_locals = Dart_NewList(4); | 937 Dart_Handle add_locals = Dart_NewList(4); |
| 931 Dart_ListSetAt(add_locals, 0, NewString("a")); | 938 Dart_ListSetAt(add_locals, 0, NewString("a")); |
| 932 Dart_ListSetAt(add_locals, 1, Dart_NewInteger(10)); | 939 Dart_ListSetAt(add_locals, 1, Dart_NewInteger(10)); |
| 933 Dart_ListSetAt(add_locals, 2, NewString("b")); | 940 Dart_ListSetAt(add_locals, 2, NewString("b")); |
| 934 Dart_ListSetAt(add_locals, 3, Dart_NewInteger(20)); | 941 Dart_ListSetAt(add_locals, 3, Dart_NewInteger(20)); |
| 935 Dart_Handle expected_locals[] = {add_locals, Dart_Null()}; | 942 Dart_Handle expected_locals[] = {add_locals, Dart_Null()}; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 964 EXPECT_VALID(retval); | 971 EXPECT_VALID(retval); |
| 965 int64_t int_value = ToInt64(retval); | 972 int64_t int_value = ToInt64(retval); |
| 966 EXPECT_EQ(30, int_value); | 973 EXPECT_EQ(30, int_value); |
| 967 EXPECT_EQ(1, breakpoint_hit_counter); | 974 EXPECT_EQ(1, breakpoint_hit_counter); |
| 968 } | 975 } |
| 969 | 976 |
| 970 | 977 |
| 971 static intptr_t bp_id_to_be_deleted; | 978 static intptr_t bp_id_to_be_deleted; |
| 972 | 979 |
| 973 static void DeleteBreakpointHandler(Dart_IsolateId isolate_id, | 980 static void DeleteBreakpointHandler(Dart_IsolateId isolate_id, |
| 981 intptr_t bp_id, |
| 974 const Dart_CodeLocation& location) { | 982 const Dart_CodeLocation& location) { |
| 975 Dart_StackTrace trace; | 983 Dart_StackTrace trace; |
| 976 Dart_GetStackTrace(&trace); | 984 Dart_GetStackTrace(&trace); |
| 977 const char* expected_trace[] = {"foo", "main"}; | 985 const char* expected_trace[] = {"foo", "main"}; |
| 978 const intptr_t expected_trace_length = 2; | 986 const intptr_t expected_trace_length = 2; |
| 979 breakpoint_hit_counter++; | 987 breakpoint_hit_counter++; |
| 980 intptr_t trace_len; | 988 intptr_t trace_len; |
| 981 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); | 989 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); |
| 982 EXPECT_VALID(res); | 990 EXPECT_VALID(res); |
| 983 EXPECT_EQ(expected_trace_length, trace_len); | 991 EXPECT_EQ(expected_trace_length, trace_len); |
| 984 for (int i = 0; i < trace_len; i++) { | 992 for (int i = 0; i < trace_len; i++) { |
| 985 Dart_ActivationFrame frame; | 993 Dart_ActivationFrame frame; |
| 986 res = Dart_GetActivationFrame(trace, i, &frame); | 994 res = Dart_GetActivationFrame(trace, i, &frame); |
| 987 EXPECT_VALID(res); | 995 EXPECT_VALID(res); |
| 988 Dart_Handle func_name; | 996 Dart_Handle func_name; |
| 989 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 997 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); |
| 990 EXPECT_VALID(res); | 998 EXPECT_VALID(res); |
| 991 EXPECT(Dart_IsString(func_name)); | 999 EXPECT(Dart_IsString(func_name)); |
| 992 const char* name_chars; | 1000 const char* name_chars; |
| 993 Dart_StringToCString(func_name, &name_chars); | 1001 Dart_StringToCString(func_name, &name_chars); |
| 994 EXPECT_STREQ(expected_trace[i], name_chars); | 1002 EXPECT_STREQ(expected_trace[i], name_chars); |
| 995 if (verbose) OS::Print(" >> %d: %s\n", i, name_chars); | 1003 if (verbose) OS::Print(" >> %d: %s\n", i, name_chars); |
| 996 } | 1004 } |
| 997 // Remove the breakpoint after we've hit it twice | 1005 // Remove the breakpoint after we've hit it twice |
| 998 if (breakpoint_hit_counter == 2) { | 1006 if (breakpoint_hit_counter == 2) { |
| 999 if (verbose) OS::Print("uninstalling breakpoint\n"); | 1007 if (verbose) OS::Print("uninstalling breakpoint\n"); |
| 1000 Dart_Handle res = Dart_RemoveBreakpoint(bp_id_to_be_deleted); | 1008 EXPECT_EQ(bp_id_to_be_deleted, bp_id); |
| 1009 Dart_Handle res = Dart_RemoveBreakpoint(bp_id); |
| 1001 EXPECT_VALID(res); | 1010 EXPECT_VALID(res); |
| 1002 } | 1011 } |
| 1003 } | 1012 } |
| 1004 | 1013 |
| 1005 | 1014 |
| 1006 TEST_CASE(Debug_DeleteBreakpoint) { | 1015 TEST_CASE(Debug_DeleteBreakpoint) { |
| 1007 const char* kScriptChars = | 1016 const char* kScriptChars = |
| 1008 "moo(s) { } \n" | 1017 "moo(s) { } \n" |
| 1009 " \n" | 1018 " \n" |
| 1010 "foo() { \n" | 1019 "foo() { \n" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1034 // to fire twice only. | 1043 // to fire twice only. |
| 1035 bp_id_to_be_deleted = bp_id; | 1044 bp_id_to_be_deleted = bp_id; |
| 1036 breakpoint_hit_counter = 0; | 1045 breakpoint_hit_counter = 0; |
| 1037 Dart_Handle retval = Invoke("main"); | 1046 Dart_Handle retval = Invoke("main"); |
| 1038 EXPECT_VALID(retval); | 1047 EXPECT_VALID(retval); |
| 1039 EXPECT_EQ(2, breakpoint_hit_counter); | 1048 EXPECT_EQ(2, breakpoint_hit_counter); |
| 1040 } | 1049 } |
| 1041 | 1050 |
| 1042 | 1051 |
| 1043 static void InspectStaticFieldHandler(Dart_IsolateId isolate_id, | 1052 static void InspectStaticFieldHandler(Dart_IsolateId isolate_id, |
| 1053 intptr_t bp_id, |
| 1044 const Dart_CodeLocation& location) { | 1054 const Dart_CodeLocation& location) { |
| 1045 Dart_StackTrace trace; | 1055 Dart_StackTrace trace; |
| 1046 Dart_GetStackTrace(&trace); | 1056 Dart_GetStackTrace(&trace); |
| 1047 ASSERT(script_lib != NULL); | 1057 ASSERT(script_lib != NULL); |
| 1048 ASSERT(!Dart_IsError(script_lib)); | 1058 ASSERT(!Dart_IsError(script_lib)); |
| 1049 ASSERT(Dart_IsLibrary(script_lib)); | 1059 ASSERT(Dart_IsLibrary(script_lib)); |
| 1050 Dart_Handle class_A = Dart_GetClass(script_lib, NewString("A")); | 1060 Dart_Handle class_A = Dart_GetClass(script_lib, NewString("A")); |
| 1051 EXPECT_VALID(class_A); | 1061 EXPECT_VALID(class_A); |
| 1052 | 1062 |
| 1053 const int expected_num_fields = 2; | 1063 const int expected_num_fields = 2; |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1412 while (interrupt_isolate_id != ILLEGAL_ISOLATE_ID) { | 1422 while (interrupt_isolate_id != ILLEGAL_ISOLATE_ID) { |
| 1413 ml.Wait(); | 1423 ml.Wait(); |
| 1414 } | 1424 } |
| 1415 } | 1425 } |
| 1416 EXPECT(interrupt_isolate_id == ILLEGAL_ISOLATE_ID); | 1426 EXPECT(interrupt_isolate_id == ILLEGAL_ISOLATE_ID); |
| 1417 } | 1427 } |
| 1418 | 1428 |
| 1419 | 1429 |
| 1420 static void StackTraceDump1BreakpointHandler( | 1430 static void StackTraceDump1BreakpointHandler( |
| 1421 Dart_IsolateId isolate_id, | 1431 Dart_IsolateId isolate_id, |
| 1432 intptr_t bp_id, |
| 1422 const Dart_CodeLocation& location) { | 1433 const Dart_CodeLocation& location) { |
| 1423 Dart_StackTrace trace; | 1434 Dart_StackTrace trace; |
| 1424 Dart_GetStackTrace(&trace); | 1435 Dart_GetStackTrace(&trace); |
| 1425 const int kStackTraceLen = 4; | 1436 const int kStackTraceLen = 4; |
| 1426 static const char* expected_trace[kStackTraceLen] = { | 1437 static const char* expected_trace[kStackTraceLen] = { |
| 1427 "local_to_main", | 1438 "local_to_main", |
| 1428 "Test.local1_to_func1", | 1439 "Test.local1_to_func1", |
| 1429 "Test.func1", | 1440 "Test.func1", |
| 1430 "main" | 1441 "main" |
| 1431 }; | 1442 }; |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1729 Dart_SetExceptionPauseInfo(kPauseOnAllExceptions); | 1740 Dart_SetExceptionPauseInfo(kPauseOnAllExceptions); |
| 1730 | 1741 |
| 1731 Dart_Handle retval = Invoke("main"); | 1742 Dart_Handle retval = Invoke("main"); |
| 1732 EXPECT(Dart_IsError(retval)); | 1743 EXPECT(Dart_IsError(retval)); |
| 1733 EXPECT(Dart_IsUnhandledExceptionError(retval)); | 1744 EXPECT(Dart_IsUnhandledExceptionError(retval)); |
| 1734 EXPECT_EQ(1, breakpoint_hit_counter); | 1745 EXPECT_EQ(1, breakpoint_hit_counter); |
| 1735 } | 1746 } |
| 1736 | 1747 |
| 1737 | 1748 |
| 1738 void TestEvaluateHandler(Dart_IsolateId isolate_id, | 1749 void TestEvaluateHandler(Dart_IsolateId isolate_id, |
| 1750 intptr_t bp_id, |
| 1739 const Dart_CodeLocation& location) { | 1751 const Dart_CodeLocation& location) { |
| 1740 Dart_StackTrace trace; | 1752 Dart_StackTrace trace; |
| 1741 Dart_GetStackTrace(&trace); | 1753 Dart_GetStackTrace(&trace); |
| 1742 intptr_t trace_len; | 1754 intptr_t trace_len; |
| 1743 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); | 1755 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); |
| 1744 EXPECT_VALID(res); | 1756 EXPECT_VALID(res); |
| 1745 EXPECT_EQ(1, trace_len); | 1757 EXPECT_EQ(1, trace_len); |
| 1746 Dart_ActivationFrame frame; | 1758 Dart_ActivationFrame frame; |
| 1747 res = Dart_GetActivationFrame(trace, 0, &frame); | 1759 res = Dart_GetActivationFrame(trace, 0, &frame); |
| 1748 EXPECT_VALID(res); | 1760 EXPECT_VALID(res); |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2046 | 2058 |
| 2047 Dart_Handle list_type = Dart_InstanceGetType(list_access_test_obj); | 2059 Dart_Handle list_type = Dart_InstanceGetType(list_access_test_obj); |
| 2048 Dart_Handle super_type = Dart_GetSupertype(list_type); | 2060 Dart_Handle super_type = Dart_GetSupertype(list_type); |
| 2049 EXPECT(!Dart_IsError(super_type)); | 2061 EXPECT(!Dart_IsError(super_type)); |
| 2050 super_type = Dart_GetSupertype(super_type); | 2062 super_type = Dart_GetSupertype(super_type); |
| 2051 EXPECT(!Dart_IsError(super_type)); | 2063 EXPECT(!Dart_IsError(super_type)); |
| 2052 EXPECT(super_type == Dart_Null()); | 2064 EXPECT(super_type == Dart_Null()); |
| 2053 } | 2065 } |
| 2054 | 2066 |
| 2055 } // namespace dart | 2067 } // namespace dart |
| OLD | NEW |