| 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 "bin/builtin.h" | 5 #include "bin/builtin.h" |
| 6 #include "include/dart_api.h" | 6 #include "include/dart_api.h" |
| 7 #include "include/dart_debugger_api.h" | 7 #include "include/dart_debugger_api.h" |
| 8 #include "include/dart_mirrors_api.h" | 8 #include "include/dart_mirrors_api.h" |
| 9 #include "include/dart_native_api.h" | 9 #include "include/dart_native_api.h" |
| 10 #include "platform/assert.h" | 10 #include "platform/assert.h" |
| (...skipping 2852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2863 | 2863 |
| 2864 | 2864 |
| 2865 static void PrologueCallbackTimes3() { | 2865 static void PrologueCallbackTimes3() { |
| 2866 global_prologue_callback_status *= 3; | 2866 global_prologue_callback_status *= 3; |
| 2867 } | 2867 } |
| 2868 | 2868 |
| 2869 | 2869 |
| 2870 static int global_epilogue_callback_status; | 2870 static int global_epilogue_callback_status; |
| 2871 | 2871 |
| 2872 | 2872 |
| 2873 static void EpilogueCallbackNOP() { |
| 2874 } |
| 2875 |
| 2876 |
| 2873 static void EpilogueCallbackTimes4() { | 2877 static void EpilogueCallbackTimes4() { |
| 2874 global_epilogue_callback_status *= 4; | 2878 global_epilogue_callback_status *= 4; |
| 2875 } | 2879 } |
| 2876 | 2880 |
| 2877 | 2881 |
| 2878 static void EpilogueCallbackTimes5() { | 2882 static void EpilogueCallbackTimes5() { |
| 2879 global_epilogue_callback_status *= 5; | 2883 global_epilogue_callback_status *= 5; |
| 2880 } | 2884 } |
| 2881 | 2885 |
| 2882 | 2886 |
| 2883 TEST_CASE(AddGarbageCollectionCallbacks) { | 2887 TEST_CASE(AddGarbageCollectionCallbacks) { |
| 2888 // Prologue callback addition testing. |
| 2889 |
| 2884 // Add a prologue callback. | 2890 // Add a prologue callback. |
| 2885 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2)); | 2891 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2)); |
| 2886 | 2892 |
| 2887 // Add the same prologue callback again. This is an error. | 2893 // Add the same prologue callback again. This is an error. |
| 2888 EXPECT(Dart_IsError(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2))); | 2894 EXPECT(Dart_IsError(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2))); |
| 2889 | 2895 |
| 2890 // Add another prologue callback. | 2896 // Add another prologue callback. This is an error. |
| 2891 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes3)); | 2897 EXPECT(Dart_IsError(Dart_AddGcPrologueCallback(&PrologueCallbackTimes3))); |
| 2892 | 2898 |
| 2893 // Add the same prologue callback again. This is an error. | 2899 // Epilogue callback addition testing. |
| 2894 EXPECT(Dart_IsError(Dart_AddGcPrologueCallback(&PrologueCallbackTimes3))); | |
| 2895 | 2900 |
| 2896 // Add an epilogue callback. | 2901 // Add an epilogue callback. |
| 2897 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4)); | 2902 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4)); |
| 2898 | 2903 |
| 2899 // Add the same epilogue callback again. This is an error. | 2904 // Add the same epilogue callback again. This is an error. |
| 2900 EXPECT(Dart_IsError(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4))); | 2905 EXPECT(Dart_IsError(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4))); |
| 2901 | 2906 |
| 2902 // Add annother epilogue callback. | 2907 // Add annother epilogue callback. This is an error. |
| 2903 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes5)); | |
| 2904 | |
| 2905 // Add the same epilogue callback again. This is an error. | |
| 2906 EXPECT(Dart_IsError(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes5))); | 2908 EXPECT(Dart_IsError(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes5))); |
| 2907 } | 2909 } |
| 2908 | 2910 |
| 2909 | 2911 |
| 2910 TEST_CASE(RemoveGarbageCollectionCallbacks) { | 2912 TEST_CASE(RemoveGarbageCollectionCallbacks) { |
| 2913 // Prologue callback removal testing. |
| 2914 |
| 2911 // Remove a prologue callback that has not been added. This is an error. | 2915 // Remove a prologue callback that has not been added. This is an error. |
| 2912 EXPECT(Dart_IsError(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes2))); | 2916 EXPECT(Dart_IsError(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes2))); |
| 2913 | 2917 |
| 2914 // Add a prologue callback. | 2918 // Add a prologue callback. |
| 2915 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2)); | 2919 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2)); |
| 2916 | 2920 |
| 2917 // Remove a prologue callback. | 2921 // Remove a prologue callback. |
| 2918 EXPECT_VALID(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes2)); | 2922 EXPECT_VALID(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes2)); |
| 2919 | 2923 |
| 2920 // Remove a prologue callback again. This is an error. | 2924 // Remove a prologue callback again. This is an error. |
| 2921 EXPECT(Dart_IsError(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes2))); | 2925 EXPECT(Dart_IsError(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes2))); |
| 2922 | 2926 |
| 2923 // Add two prologue callbacks. | 2927 // Add a prologue callback. |
| 2924 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2)); | 2928 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2)); |
| 2925 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes3)); | |
| 2926 | 2929 |
| 2927 // Remove two prologue callbacks. | 2930 // Remove a prolog callback that was not added. This is an error. |
| 2928 EXPECT_VALID(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes3)); | 2931 EXPECT(Dart_IsError(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes3))); |
| 2929 EXPECT_VALID(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes2)); | |
| 2930 | 2932 |
| 2931 // Remove epilogue callbacks again. This is an error. | 2933 // Epilogue callback removal testing. |
| 2934 |
| 2935 // Remove epilogue callback that was not added. This is an error. |
| 2932 EXPECT(Dart_IsError(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes4))); | 2936 EXPECT(Dart_IsError(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes4))); |
| 2933 EXPECT(Dart_IsError(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes5))); | |
| 2934 | 2937 |
| 2935 // Remove a epilogue callback that has not been added. This is an error. | 2938 // Add an epilogue callback. |
| 2936 EXPECT(Dart_IsError(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes5))); | |
| 2937 | |
| 2938 // Add a epilogue callback. | |
| 2939 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4)); | 2939 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4)); |
| 2940 | 2940 |
| 2941 // Remove a epilogue callback. | 2941 // Remove an epilogue callback. |
| 2942 EXPECT_VALID(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes4)); | 2942 EXPECT_VALID(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes4)); |
| 2943 | 2943 |
| 2944 // Remove a epilogue callback again. This is an error. | 2944 // Remove an epilogue callback again. This is an error. |
| 2945 EXPECT(Dart_IsError(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes4))); | 2945 EXPECT(Dart_IsError(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes4))); |
| 2946 | 2946 |
| 2947 // Add two epilogue callbacks. | 2947 // Add an epilogue callbacks. |
| 2948 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4)); | 2948 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4)); |
| 2949 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes5)); | |
| 2950 | 2949 |
| 2951 // Remove two epilogue callbacks. | 2950 // Remove an epilogue callback that was not added. This is an error. |
| 2952 EXPECT_VALID(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes5)); | 2951 EXPECT(Dart_IsError(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes5))); |
| 2953 EXPECT_VALID(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes4)); | 2952 } |
| 2954 | 2953 |
| 2955 // Remove epilogue callbacks again. This is an error. | 2954 |
| 2956 EXPECT(Dart_IsError(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes4))); | 2955 TEST_CASE(SetGarbageCollectionCallbacks) { |
| 2957 EXPECT(Dart_IsError(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes5))); | 2956 // GC callback addition testing. |
| 2957 |
| 2958 // Add GC callbacks. |
| 2959 EXPECT_VALID(Dart_SetGcCallbacks(&PrologueCallbackTimes2, |
| 2960 &EpilogueCallbackTimes4)); |
| 2961 |
| 2962 // Add the same callbacks again. This is an error. |
| 2963 EXPECT(Dart_IsError(Dart_SetGcCallbacks(&PrologueCallbackTimes2, |
| 2964 &EpilogueCallbackTimes4))); |
| 2965 |
| 2966 // Add another callback. This is an error. |
| 2967 EXPECT(Dart_IsError(Dart_SetGcCallbacks(&PrologueCallbackTimes3, |
| 2968 &EpilogueCallbackTimes5))); |
| 2969 |
| 2970 // GC callback removal testing. |
| 2971 |
| 2972 // Remove GC callbacks. |
| 2973 EXPECT_VALID(Dart_SetGcCallbacks(NULL, NULL)); |
| 2974 |
| 2975 // Remove GC callbacks whennone exist. This is an error. |
| 2976 EXPECT(Dart_IsError(Dart_SetGcCallbacks(NULL, NULL))); |
| 2977 |
| 2978 EXPECT_VALID(Dart_SetGcCallbacks(&PrologueCallbackTimes2, |
| 2979 &EpilogueCallbackTimes4)); |
| 2980 EXPECT(Dart_IsError(Dart_SetGcCallbacks(&PrologueCallbackTimes2, NULL))); |
| 2981 EXPECT(Dart_IsError(Dart_SetGcCallbacks(NULL, &EpilogueCallbackTimes4))); |
| 2958 } | 2982 } |
| 2959 | 2983 |
| 2960 | 2984 |
| 2961 TEST_CASE(SingleGarbageCollectionCallback) { | 2985 TEST_CASE(SingleGarbageCollectionCallback) { |
| 2962 // Add a prologue callback. | 2986 // Add a prologue callback. |
| 2963 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2)); | 2987 EXPECT_VALID(Dart_SetGcCallbacks(&PrologueCallbackTimes2, |
| 2988 &EpilogueCallbackNOP)); |
| 2964 | 2989 |
| 2965 // Garbage collect new space ignoring callbacks. This should not | 2990 // Garbage collect new space ignoring callbacks. This should not |
| 2966 // invoke the prologue callback. No status values should change. | 2991 // invoke the prologue callback. No status values should change. |
| 2967 global_prologue_callback_status = 3; | 2992 global_prologue_callback_status = 3; |
| 2968 global_epilogue_callback_status = 7; | 2993 global_epilogue_callback_status = 7; |
| 2969 GCTestHelper::CollectNewSpace(Heap::kIgnoreApiCallbacks); | 2994 GCTestHelper::CollectNewSpace(Heap::kIgnoreApiCallbacks); |
| 2970 EXPECT_EQ(3, global_prologue_callback_status); | 2995 EXPECT_EQ(3, global_prologue_callback_status); |
| 2971 EXPECT_EQ(7, global_epilogue_callback_status); | 2996 EXPECT_EQ(7, global_epilogue_callback_status); |
| 2972 | 2997 |
| 2973 // Garbage collect new space invoking callbacks. This should | 2998 // Garbage collect new space invoking callbacks. This should |
| (...skipping 21 matching lines...) Expand all Loading... |
| 2995 EXPECT_EQ(6, global_prologue_callback_status); | 3020 EXPECT_EQ(6, global_prologue_callback_status); |
| 2996 EXPECT_EQ(7, global_epilogue_callback_status); | 3021 EXPECT_EQ(7, global_epilogue_callback_status); |
| 2997 | 3022 |
| 2998 // Garbage collect old space again. Callbacks are persistent so the | 3023 // Garbage collect old space again. Callbacks are persistent so the |
| 2999 // prologue status value should change again. | 3024 // prologue status value should change again. |
| 3000 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); | 3025 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); |
| 3001 EXPECT_EQ(12, global_prologue_callback_status); | 3026 EXPECT_EQ(12, global_prologue_callback_status); |
| 3002 EXPECT_EQ(7, global_epilogue_callback_status); | 3027 EXPECT_EQ(7, global_epilogue_callback_status); |
| 3003 | 3028 |
| 3004 // Add an epilogue callback. | 3029 // Add an epilogue callback. |
| 3005 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4)); | 3030 EXPECT_VALID(Dart_SetGcCallbacks(NULL, NULL)); |
| 3031 EXPECT_VALID(Dart_SetGcCallbacks(&PrologueCallbackTimes2, |
| 3032 &EpilogueCallbackTimes4)); |
| 3006 | 3033 |
| 3007 // Garbage collect new space. This should not invoke the prologue | 3034 // Garbage collect new space. This should not invoke the prologue |
| 3008 // or the epilogue callback. No status values should change. | 3035 // or the epilogue callback. No status values should change. |
| 3009 global_prologue_callback_status = 3; | 3036 global_prologue_callback_status = 3; |
| 3010 global_epilogue_callback_status = 7; | 3037 global_epilogue_callback_status = 7; |
| 3011 GCTestHelper::CollectNewSpace(Heap::kIgnoreApiCallbacks); | 3038 GCTestHelper::CollectNewSpace(Heap::kIgnoreApiCallbacks); |
| 3012 EXPECT_EQ(3, global_prologue_callback_status); | 3039 EXPECT_EQ(3, global_prologue_callback_status); |
| 3013 EXPECT_EQ(7, global_epilogue_callback_status); | 3040 EXPECT_EQ(7, global_epilogue_callback_status); |
| 3014 | 3041 |
| 3015 // Garbage collect new space. This should invoke the prologue and | 3042 // Garbage collect new space. This should invoke the prologue and |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3047 | 3074 |
| 3048 // Garbage collect old space. No callbacks should be invoked. No | 3075 // Garbage collect old space. No callbacks should be invoked. No |
| 3049 // status values should change. | 3076 // status values should change. |
| 3050 global_prologue_callback_status = 3; | 3077 global_prologue_callback_status = 3; |
| 3051 global_epilogue_callback_status = 7; | 3078 global_epilogue_callback_status = 7; |
| 3052 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); | 3079 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); |
| 3053 EXPECT_EQ(3, global_prologue_callback_status); | 3080 EXPECT_EQ(3, global_prologue_callback_status); |
| 3054 EXPECT_EQ(7, global_epilogue_callback_status); | 3081 EXPECT_EQ(7, global_epilogue_callback_status); |
| 3055 } | 3082 } |
| 3056 | 3083 |
| 3057 TEST_CASE(MultipleGarbageCollectionCallbacks) { | |
| 3058 // Add prologue callbacks. | |
| 3059 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes2)); | |
| 3060 EXPECT_VALID(Dart_AddGcPrologueCallback(&PrologueCallbackTimes3)); | |
| 3061 | |
| 3062 // Add an epilogue callback. | |
| 3063 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes4)); | |
| 3064 | |
| 3065 // Garbage collect new space. This should not invoke the prologue | |
| 3066 // or epilogue callbacks. No status values should change. | |
| 3067 global_prologue_callback_status = 3; | |
| 3068 global_epilogue_callback_status = 7; | |
| 3069 GCTestHelper::CollectNewSpace(Heap::kIgnoreApiCallbacks); | |
| 3070 EXPECT_EQ(3, global_prologue_callback_status); | |
| 3071 EXPECT_EQ(7, global_epilogue_callback_status); | |
| 3072 | |
| 3073 // Garbage collect old space. This should invoke both prologue | |
| 3074 // callbacks and the epilogue callback. The prologue and epilogue | |
| 3075 // status values should change. | |
| 3076 global_prologue_callback_status = 3; | |
| 3077 global_epilogue_callback_status = 7; | |
| 3078 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); | |
| 3079 EXPECT_EQ(18, global_prologue_callback_status); | |
| 3080 EXPECT_EQ(28, global_epilogue_callback_status); | |
| 3081 | |
| 3082 // Add another GC epilogue callback. | |
| 3083 EXPECT_VALID(Dart_AddGcEpilogueCallback(&EpilogueCallbackTimes5)); | |
| 3084 | |
| 3085 // Garbage collect old space. This should invoke both prologue | |
| 3086 // callbacks and both epilogue callbacks. The prologue and epilogue | |
| 3087 // status values should change. | |
| 3088 global_prologue_callback_status = 3; | |
| 3089 global_epilogue_callback_status = 7; | |
| 3090 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); | |
| 3091 EXPECT_EQ(18, global_prologue_callback_status); | |
| 3092 EXPECT_EQ(140, global_epilogue_callback_status); | |
| 3093 | |
| 3094 // Remove an epilogue callback. | |
| 3095 EXPECT_VALID(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes4)); | |
| 3096 | |
| 3097 // Garbage collect old space. This should invoke both prologue | |
| 3098 // callbacks and the remaining epilogue callback. The prologue and | |
| 3099 // epilogue status values should change. | |
| 3100 global_prologue_callback_status = 3; | |
| 3101 global_epilogue_callback_status = 7; | |
| 3102 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); | |
| 3103 EXPECT_EQ(18, global_prologue_callback_status); | |
| 3104 EXPECT_EQ(35, global_epilogue_callback_status); | |
| 3105 | |
| 3106 // Remove the remaining epilogue callback. | |
| 3107 EXPECT_VALID(Dart_RemoveGcEpilogueCallback(&EpilogueCallbackTimes5)); | |
| 3108 | |
| 3109 // Garbage collect old space. This should invoke both prologue | |
| 3110 // callbacks. The prologue status value should change. | |
| 3111 global_prologue_callback_status = 3; | |
| 3112 global_epilogue_callback_status = 7; | |
| 3113 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); | |
| 3114 EXPECT_EQ(18, global_prologue_callback_status); | |
| 3115 EXPECT_EQ(7, global_epilogue_callback_status); | |
| 3116 | |
| 3117 // Remove a prologue callback. | |
| 3118 EXPECT_VALID(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes3)); | |
| 3119 | |
| 3120 // Garbage collect old space. This should invoke the remaining | |
| 3121 // prologue callback. The prologue status value should change. | |
| 3122 global_prologue_callback_status = 3; | |
| 3123 global_epilogue_callback_status = 7; | |
| 3124 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); | |
| 3125 EXPECT_EQ(6, global_prologue_callback_status); | |
| 3126 EXPECT_EQ(7, global_epilogue_callback_status); | |
| 3127 | |
| 3128 // Remove the remaining prologue callback. | |
| 3129 EXPECT_VALID(Dart_RemoveGcPrologueCallback(&PrologueCallbackTimes2)); | |
| 3130 | |
| 3131 // Garbage collect old space. No callbacks should be invoked. No | |
| 3132 // status values should change. | |
| 3133 global_prologue_callback_status = 3; | |
| 3134 global_epilogue_callback_status = 7; | |
| 3135 Isolate::Current()->heap()->CollectGarbage(Heap::kOld); | |
| 3136 EXPECT_EQ(3, global_prologue_callback_status); | |
| 3137 EXPECT_EQ(7, global_epilogue_callback_status); | |
| 3138 } | |
| 3139 | |
| 3140 | 3084 |
| 3141 // Unit test for creating multiple scopes and local handles within them. | 3085 // Unit test for creating multiple scopes and local handles within them. |
| 3142 // Ensure that the local handles get all cleaned out when exiting the | 3086 // Ensure that the local handles get all cleaned out when exiting the |
| 3143 // scope. | 3087 // scope. |
| 3144 UNIT_TEST_CASE(LocalHandles) { | 3088 UNIT_TEST_CASE(LocalHandles) { |
| 3145 TestCase::CreateTestIsolate(); | 3089 TestCase::CreateTestIsolate(); |
| 3146 Isolate* isolate = Isolate::Current(); | 3090 Isolate* isolate = Isolate::Current(); |
| 3147 EXPECT(isolate != NULL); | 3091 EXPECT(isolate != NULL); |
| 3148 ApiState* state = isolate->api_state(); | 3092 ApiState* state = isolate->api_state(); |
| 3149 EXPECT(state != NULL); | 3093 EXPECT(state != NULL); |
| (...skipping 4986 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8136 NewString("main"), | 8080 NewString("main"), |
| 8137 1, | 8081 1, |
| 8138 dart_args); | 8082 dart_args); |
| 8139 int64_t value = 0; | 8083 int64_t value = 0; |
| 8140 result = Dart_IntegerToInt64(result, &value); | 8084 result = Dart_IntegerToInt64(result, &value); |
| 8141 EXPECT_VALID(result); | 8085 EXPECT_VALID(result); |
| 8142 EXPECT_EQ(6, value); | 8086 EXPECT_EQ(6, value); |
| 8143 } | 8087 } |
| 8144 | 8088 |
| 8145 } // namespace dart | 8089 } // namespace dart |
| OLD | NEW |