| 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 3727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3738 " return new Foo().getInstanceClosureWithArgs();\n" | 3738 " return new Foo().getInstanceClosureWithArgs();\n" |
| 3739 "}\n" | 3739 "}\n" |
| 3740 "Function getStaticClosure() {\n" | 3740 "Function getStaticClosure() {\n" |
| 3741 " return Foo.getStaticClosure();\n" | 3741 " return Foo.getStaticClosure();\n" |
| 3742 "}\n" | 3742 "}\n" |
| 3743 "Function getStaticClosureWithArgs() {\n" | 3743 "Function getStaticClosureWithArgs() {\n" |
| 3744 " return Foo.getStaticClosureWithArgs();\n" | 3744 " return Foo.getStaticClosureWithArgs();\n" |
| 3745 "}\n"; | 3745 "}\n"; |
| 3746 Dart_Handle result; | 3746 Dart_Handle result; |
| 3747 Dart_Handle owner; | 3747 Dart_Handle owner; |
| 3748 Dart_Handle defining_function; |
| 3748 DARTSCOPE_NOCHECKS(Isolate::Current()); | 3749 DARTSCOPE_NOCHECKS(Isolate::Current()); |
| 3749 | 3750 |
| 3750 // Create a test library and Load up a test script in it. | 3751 // Create a test library and Load up a test script in it. |
| 3751 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); | 3752 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); |
| 3752 EXPECT_VALID(lib); | 3753 EXPECT_VALID(lib); |
| 3753 Dart_Handle cls = Dart_GetClass(lib, Dart_NewString("Foo")); | 3754 Dart_Handle cls = Dart_GetClass(lib, Dart_NewString("Foo")); |
| 3754 EXPECT_VALID(cls); | 3755 EXPECT_VALID(cls); |
| 3755 | 3756 |
| 3756 // Invoke a function which returns a closure. | 3757 // Invoke a function which returns a closure. |
| 3757 Dart_Handle retobj = Dart_Invoke(lib, Dart_NewString("getClosure"), 0, NULL); | 3758 Dart_Handle retobj = Dart_Invoke(lib, Dart_NewString("getClosure"), 0, NULL); |
| 3758 EXPECT_VALID(retobj); | 3759 EXPECT_VALID(retobj); |
| 3759 | 3760 |
| 3760 EXPECT(Dart_IsClosure(retobj)); | 3761 EXPECT(Dart_IsClosure(retobj)); |
| 3761 EXPECT(!Dart_IsClosure(Dart_NewInteger(101))); | 3762 EXPECT(!Dart_IsClosure(Dart_NewInteger(101))); |
| 3762 | 3763 |
| 3763 // Retrieve the closure's function | 3764 // Retrieve the closure's function |
| 3764 result = Dart_ClosureFunction(retobj); | 3765 result = Dart_ClosureFunction(retobj); |
| 3765 EXPECT_VALID(result); | 3766 EXPECT_VALID(result); |
| 3766 EXPECT(Dart_IsFunction(result)); | 3767 EXPECT(Dart_IsFunction(result)); |
| 3767 owner = Dart_FunctionEnclosingClassOrLibrary(result); | 3768 owner = Dart_FunctionOwner(result); |
| 3768 EXPECT_VALID(owner); | 3769 EXPECT_VALID(owner); |
| 3769 EXPECT(Dart_IdentityEquals(owner, lib)); | 3770 defining_function = Dart_LookupFunction(lib, Dart_NewString("getClosure")); |
| 3771 EXPECT(Dart_IdentityEquals(owner, defining_function)); |
| 3770 int64_t fixed_param_count = -999; | 3772 int64_t fixed_param_count = -999; |
| 3771 int64_t opt_param_count = -999; | 3773 int64_t opt_param_count = -999; |
| 3772 result = Dart_FunctionParameterCounts(result, | 3774 result = Dart_FunctionParameterCounts(result, |
| 3773 &fixed_param_count, | 3775 &fixed_param_count, |
| 3774 &opt_param_count); | 3776 &opt_param_count); |
| 3775 EXPECT_VALID(result); | 3777 EXPECT_VALID(result); |
| 3776 EXPECT_EQ(2, fixed_param_count); | 3778 EXPECT_EQ(2, fixed_param_count); |
| 3777 EXPECT_EQ(1, opt_param_count); | 3779 EXPECT_EQ(1, opt_param_count); |
| 3778 | 3780 |
| 3779 // Try to retrieve function from a non-closure object | 3781 // Try to retrieve function from a non-closure object |
| 3780 result = Dart_ClosureFunction(Dart_NewInteger(1)); | 3782 result = Dart_ClosureFunction(Dart_NewInteger(1)); |
| 3781 EXPECT(Dart_IsError(result)); | 3783 EXPECT(Dart_IsError(result)); |
| 3782 | 3784 |
| 3783 // Invoke a function which returns an "instance" closure. | 3785 // Invoke a function which returns an "instance" closure. |
| 3784 retobj = Dart_Invoke(lib, Dart_NewString("getInstanceClosure"), 0, NULL); | 3786 retobj = Dart_Invoke(lib, Dart_NewString("getInstanceClosure"), 0, NULL); |
| 3785 EXPECT_VALID(retobj); | 3787 EXPECT_VALID(retobj); |
| 3786 EXPECT(Dart_IsClosure(retobj)); | 3788 EXPECT(Dart_IsClosure(retobj)); |
| 3787 | 3789 |
| 3788 // Retrieve the closure's function | 3790 // Retrieve the closure's function |
| 3789 result = Dart_ClosureFunction(retobj); | 3791 result = Dart_ClosureFunction(retobj); |
| 3790 EXPECT_VALID(result); | 3792 EXPECT_VALID(result); |
| 3791 EXPECT(Dart_IsFunction(result)); | 3793 EXPECT(Dart_IsFunction(result)); |
| 3792 owner = Dart_FunctionEnclosingClassOrLibrary(result); | 3794 owner = Dart_FunctionOwner(result); |
| 3793 EXPECT_VALID(owner); | 3795 EXPECT_VALID(owner); |
| 3794 EXPECT(Dart_IdentityEquals(owner, cls)); | 3796 defining_function = Dart_LookupFunction(cls, |
| 3797 Dart_NewString("getInstanceClosure")); |
| 3798 EXPECT(Dart_IdentityEquals(owner, defining_function)); |
| 3795 // -999: We want to distinguish between a non-answer and a wrong answer, and | 3799 // -999: We want to distinguish between a non-answer and a wrong answer, and |
| 3796 // -1 has been a previous wrong answer | 3800 // -1 has been a previous wrong answer |
| 3797 fixed_param_count = -999; | 3801 fixed_param_count = -999; |
| 3798 opt_param_count = -999; | 3802 opt_param_count = -999; |
| 3799 result = Dart_FunctionParameterCounts(result, | 3803 result = Dart_FunctionParameterCounts(result, |
| 3800 &fixed_param_count, | 3804 &fixed_param_count, |
| 3801 &opt_param_count); | 3805 &opt_param_count); |
| 3802 EXPECT_VALID(result); | 3806 EXPECT_VALID(result); |
| 3803 EXPECT_EQ(0, fixed_param_count); | 3807 EXPECT_EQ(0, fixed_param_count); |
| 3804 EXPECT_EQ(0, opt_param_count); | 3808 EXPECT_EQ(0, opt_param_count); |
| 3805 | 3809 |
| 3806 // Invoke a function which returns an "instance" closure with arguments. | 3810 // Invoke a function which returns an "instance" closure with arguments. |
| 3807 retobj = Dart_Invoke(lib, | 3811 retobj = Dart_Invoke(lib, |
| 3808 Dart_NewString("getInstanceClosureWithArgs"), | 3812 Dart_NewString("getInstanceClosureWithArgs"), |
| 3809 0, | 3813 0, |
| 3810 NULL); | 3814 NULL); |
| 3811 EXPECT_VALID(retobj); | 3815 EXPECT_VALID(retobj); |
| 3812 EXPECT(Dart_IsClosure(retobj)); | 3816 EXPECT(Dart_IsClosure(retobj)); |
| 3813 | 3817 |
| 3814 // Retrieve the closure's function | 3818 // Retrieve the closure's function |
| 3815 result = Dart_ClosureFunction(retobj); | 3819 result = Dart_ClosureFunction(retobj); |
| 3816 EXPECT_VALID(result); | 3820 EXPECT_VALID(result); |
| 3817 EXPECT(Dart_IsFunction(result)); | 3821 EXPECT(Dart_IsFunction(result)); |
| 3818 owner = Dart_FunctionEnclosingClassOrLibrary(result); | 3822 owner = Dart_FunctionOwner(result); |
| 3819 EXPECT_VALID(owner); | 3823 EXPECT_VALID(owner); |
| 3820 EXPECT(Dart_IdentityEquals(owner, cls)); | 3824 defining_function = |
| 3825 Dart_LookupFunction(cls, Dart_NewString("getInstanceClosureWithArgs")); |
| 3826 EXPECT(Dart_IdentityEquals(owner, defining_function)); |
| 3821 // -999: We want to distinguish between a non-answer and a wrong answer, and | 3827 // -999: We want to distinguish between a non-answer and a wrong answer, and |
| 3822 // -1 has been a previous wrong answer | 3828 // -1 has been a previous wrong answer |
| 3823 fixed_param_count = -999; | 3829 fixed_param_count = -999; |
| 3824 opt_param_count = -999; | 3830 opt_param_count = -999; |
| 3825 result = Dart_FunctionParameterCounts(result, | 3831 result = Dart_FunctionParameterCounts(result, |
| 3826 &fixed_param_count, | 3832 &fixed_param_count, |
| 3827 &opt_param_count); | 3833 &opt_param_count); |
| 3828 EXPECT_VALID(result); | 3834 EXPECT_VALID(result); |
| 3829 EXPECT_EQ(2, fixed_param_count); | 3835 EXPECT_EQ(2, fixed_param_count); |
| 3830 EXPECT_EQ(1, opt_param_count); | 3836 EXPECT_EQ(1, opt_param_count); |
| 3831 | 3837 |
| 3832 // Invoke a function which returns a "static" closure. | 3838 // Invoke a function which returns a "static" closure. |
| 3833 retobj = Dart_Invoke(lib, Dart_NewString("getStaticClosure"), 0, NULL); | 3839 retobj = Dart_Invoke(lib, Dart_NewString("getStaticClosure"), 0, NULL); |
| 3834 EXPECT_VALID(retobj); | 3840 EXPECT_VALID(retobj); |
| 3835 EXPECT(Dart_IsClosure(retobj)); | 3841 EXPECT(Dart_IsClosure(retobj)); |
| 3836 | 3842 |
| 3837 // Retrieve the closure's function | 3843 // Retrieve the closure's function |
| 3838 result = Dart_ClosureFunction(retobj); | 3844 result = Dart_ClosureFunction(retobj); |
| 3839 EXPECT_VALID(result); | 3845 EXPECT_VALID(result); |
| 3840 EXPECT(Dart_IsFunction(result)); | 3846 EXPECT(Dart_IsFunction(result)); |
| 3841 owner = Dart_FunctionEnclosingClassOrLibrary(result); | 3847 owner = Dart_FunctionOwner(result); |
| 3842 EXPECT_VALID(owner); | 3848 EXPECT_VALID(owner); |
| 3843 EXPECT(Dart_IdentityEquals(owner, cls)); | 3849 defining_function = Dart_LookupFunction(cls, |
| 3850 Dart_NewString("getStaticClosure")); |
| 3851 EXPECT(Dart_IdentityEquals(owner, defining_function)); |
| 3844 // -999: We want to distinguish between a non-answer and a wrong answer, and | 3852 // -999: We want to distinguish between a non-answer and a wrong answer, and |
| 3845 // -1 has been a previous wrong answer | 3853 // -1 has been a previous wrong answer |
| 3846 fixed_param_count = -999; | 3854 fixed_param_count = -999; |
| 3847 opt_param_count = -999; | 3855 opt_param_count = -999; |
| 3848 result = Dart_FunctionParameterCounts(result, | 3856 result = Dart_FunctionParameterCounts(result, |
| 3849 &fixed_param_count, | 3857 &fixed_param_count, |
| 3850 &opt_param_count); | 3858 &opt_param_count); |
| 3851 EXPECT_VALID(result); | 3859 EXPECT_VALID(result); |
| 3852 EXPECT_EQ(0, fixed_param_count); | 3860 EXPECT_EQ(0, fixed_param_count); |
| 3853 EXPECT_EQ(0, opt_param_count); | 3861 EXPECT_EQ(0, opt_param_count); |
| 3854 | 3862 |
| 3855 | 3863 |
| 3856 // Invoke a function which returns a "static" closure with arguments. | 3864 // Invoke a function which returns a "static" closure with arguments. |
| 3857 retobj = Dart_Invoke(lib, | 3865 retobj = Dart_Invoke(lib, |
| 3858 Dart_NewString("getStaticClosureWithArgs"), | 3866 Dart_NewString("getStaticClosureWithArgs"), |
| 3859 0, | 3867 0, |
| 3860 NULL); | 3868 NULL); |
| 3861 EXPECT_VALID(retobj); | 3869 EXPECT_VALID(retobj); |
| 3862 EXPECT(Dart_IsClosure(retobj)); | 3870 EXPECT(Dart_IsClosure(retobj)); |
| 3863 | 3871 |
| 3864 // Retrieve the closure's function | 3872 // Retrieve the closure's function |
| 3865 result = Dart_ClosureFunction(retobj); | 3873 result = Dart_ClosureFunction(retobj); |
| 3866 EXPECT_VALID(result); | 3874 EXPECT_VALID(result); |
| 3867 EXPECT(Dart_IsFunction(result)); | 3875 EXPECT(Dart_IsFunction(result)); |
| 3868 owner = Dart_FunctionEnclosingClassOrLibrary(result); | 3876 owner = Dart_FunctionOwner(result); |
| 3869 EXPECT_VALID(owner); | 3877 EXPECT_VALID(owner); |
| 3870 EXPECT(Dart_IdentityEquals(owner, cls)); | 3878 defining_function = |
| 3879 Dart_LookupFunction(cls, Dart_NewString("getStaticClosureWithArgs")); |
| 3880 EXPECT(Dart_IdentityEquals(owner, defining_function)); |
| 3871 // -999: We want to distinguish between a non-answer and a wrong answer, and | 3881 // -999: We want to distinguish between a non-answer and a wrong answer, and |
| 3872 // -1 has been a previous wrong answer | 3882 // -1 has been a previous wrong answer |
| 3873 fixed_param_count = -999; | 3883 fixed_param_count = -999; |
| 3874 opt_param_count = -999; | 3884 opt_param_count = -999; |
| 3875 result = Dart_FunctionParameterCounts(result, | 3885 result = Dart_FunctionParameterCounts(result, |
| 3876 &fixed_param_count, | 3886 &fixed_param_count, |
| 3877 &opt_param_count); | 3887 &opt_param_count); |
| 3878 EXPECT_VALID(result); | 3888 EXPECT_VALID(result); |
| 3879 EXPECT_EQ(2, fixed_param_count); | 3889 EXPECT_EQ(2, fixed_param_count); |
| 3880 EXPECT_EQ(1, opt_param_count); | 3890 EXPECT_EQ(1, opt_param_count); |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4187 Dart_Handle private_cls = Dart_GetClass(lib, Dart_NewString("_PrivateClass")); | 4197 Dart_Handle private_cls = Dart_GetClass(lib, Dart_NewString("_PrivateClass")); |
| 4188 EXPECT_VALID(private_cls); | 4198 EXPECT_VALID(private_cls); |
| 4189 TextBuffer buffer(128); | 4199 TextBuffer buffer(128); |
| 4190 | 4200 |
| 4191 // Lookup a top-level function. | 4201 // Lookup a top-level function. |
| 4192 Dart_Handle func = Dart_LookupFunction(lib, Dart_NewString("a")); | 4202 Dart_Handle func = Dart_LookupFunction(lib, Dart_NewString("a")); |
| 4193 EXPECT_VALID(func); | 4203 EXPECT_VALID(func); |
| 4194 EXPECT(Dart_IsFunction(func)); | 4204 EXPECT(Dart_IsFunction(func)); |
| 4195 BuildFunctionDescription(&buffer, func); | 4205 BuildFunctionDescription(&buffer, func); |
| 4196 EXPECT_STREQ("a 0 0 static", buffer.buf()); | 4206 EXPECT_STREQ("a 0 0 static", buffer.buf()); |
| 4197 EXPECT(Dart_IsLibrary(Dart_FunctionEnclosingClassOrLibrary(func))); | 4207 EXPECT(Dart_IsLibrary(Dart_FunctionOwner(func))); |
| 4198 Dart_Handle owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4208 Dart_Handle owner = Dart_FunctionOwner(func); |
| 4199 EXPECT_VALID(owner); | 4209 EXPECT_VALID(owner); |
| 4200 EXPECT(Dart_IdentityEquals(owner, lib)); | 4210 EXPECT(Dart_IdentityEquals(owner, lib)); |
| 4201 | 4211 |
| 4202 // Lookup a private top-level function. | 4212 // Lookup a private top-level function. |
| 4203 func = Dart_LookupFunction(lib, Dart_NewString("_b")); | 4213 func = Dart_LookupFunction(lib, Dart_NewString("_b")); |
| 4204 EXPECT_VALID(func); | 4214 EXPECT_VALID(func); |
| 4205 EXPECT(Dart_IsFunction(func)); | 4215 EXPECT(Dart_IsFunction(func)); |
| 4206 BuildFunctionDescription(&buffer, func); | 4216 BuildFunctionDescription(&buffer, func); |
| 4207 EXPECT_STREQ("_b 0 0 static", buffer.buf()); | 4217 EXPECT_STREQ("_b 0 0 static", buffer.buf()); |
| 4208 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4218 owner = Dart_FunctionOwner(func); |
| 4209 EXPECT_VALID(owner); | 4219 EXPECT_VALID(owner); |
| 4210 EXPECT(Dart_IdentityEquals(owner, lib)); | 4220 EXPECT(Dart_IdentityEquals(owner, lib)); |
| 4211 | 4221 |
| 4212 // Lookup a top-level getter. | 4222 // Lookup a top-level getter. |
| 4213 func = Dart_LookupFunction(lib, Dart_NewString("c")); | 4223 func = Dart_LookupFunction(lib, Dart_NewString("c")); |
| 4214 EXPECT_VALID(func); | 4224 EXPECT_VALID(func); |
| 4215 EXPECT(Dart_IsFunction(func)); | 4225 EXPECT(Dart_IsFunction(func)); |
| 4216 BuildFunctionDescription(&buffer, func); | 4226 BuildFunctionDescription(&buffer, func); |
| 4217 EXPECT_STREQ("c 0 0 static getter", buffer.buf()); | 4227 EXPECT_STREQ("c 0 0 static getter", buffer.buf()); |
| 4218 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4228 owner = Dart_FunctionOwner(func); |
| 4219 EXPECT_VALID(owner); | 4229 EXPECT_VALID(owner); |
| 4220 EXPECT(Dart_IdentityEquals(owner, lib)); | 4230 EXPECT(Dart_IdentityEquals(owner, lib)); |
| 4221 | 4231 |
| 4222 // Lookup a top-level setter. | 4232 // Lookup a top-level setter. |
| 4223 func = Dart_LookupFunction(lib, Dart_NewString("d=")); | 4233 func = Dart_LookupFunction(lib, Dart_NewString("d=")); |
| 4224 EXPECT_VALID(func); | 4234 EXPECT_VALID(func); |
| 4225 EXPECT(Dart_IsFunction(func)); | 4235 EXPECT(Dart_IsFunction(func)); |
| 4226 BuildFunctionDescription(&buffer, func); | 4236 BuildFunctionDescription(&buffer, func); |
| 4227 EXPECT_STREQ("d= 1 0 static setter", buffer.buf()); | 4237 EXPECT_STREQ("d= 1 0 static setter", buffer.buf()); |
| 4228 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4238 owner = Dart_FunctionOwner(func); |
| 4229 EXPECT_VALID(owner); | 4239 EXPECT_VALID(owner); |
| 4230 EXPECT(Dart_IdentityEquals(owner, lib)); | 4240 EXPECT(Dart_IdentityEquals(owner, lib)); |
| 4231 | 4241 |
| 4232 // Lookup a private top-level getter. | 4242 // Lookup a private top-level getter. |
| 4233 func = Dart_LookupFunction(lib, Dart_NewString("_e")); | 4243 func = Dart_LookupFunction(lib, Dart_NewString("_e")); |
| 4234 EXPECT_VALID(func); | 4244 EXPECT_VALID(func); |
| 4235 EXPECT(Dart_IsFunction(func)); | 4245 EXPECT(Dart_IsFunction(func)); |
| 4236 BuildFunctionDescription(&buffer, func); | 4246 BuildFunctionDescription(&buffer, func); |
| 4237 EXPECT_STREQ("_e 0 0 static getter", buffer.buf()); | 4247 EXPECT_STREQ("_e 0 0 static getter", buffer.buf()); |
| 4238 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4248 owner = Dart_FunctionOwner(func); |
| 4239 EXPECT_VALID(owner); | 4249 EXPECT_VALID(owner); |
| 4240 EXPECT(Dart_IdentityEquals(owner, lib)); | 4250 EXPECT(Dart_IdentityEquals(owner, lib)); |
| 4241 | 4251 |
| 4242 // Lookup a private top-level setter. | 4252 // Lookup a private top-level setter. |
| 4243 func = Dart_LookupFunction(lib, Dart_NewString("_f=")); | 4253 func = Dart_LookupFunction(lib, Dart_NewString("_f=")); |
| 4244 EXPECT_VALID(func); | 4254 EXPECT_VALID(func); |
| 4245 EXPECT(Dart_IsFunction(func)); | 4255 EXPECT(Dart_IsFunction(func)); |
| 4246 BuildFunctionDescription(&buffer, func); | 4256 BuildFunctionDescription(&buffer, func); |
| 4247 EXPECT_STREQ("_f= 1 0 static setter", buffer.buf()); | 4257 EXPECT_STREQ("_f= 1 0 static setter", buffer.buf()); |
| 4248 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4258 owner = Dart_FunctionOwner(func); |
| 4249 EXPECT_VALID(owner); | 4259 EXPECT_VALID(owner); |
| 4250 EXPECT(Dart_IdentityEquals(owner, lib)); | 4260 EXPECT(Dart_IdentityEquals(owner, lib)); |
| 4251 | 4261 |
| 4252 // Lookup an unnamed constructor | 4262 // Lookup an unnamed constructor |
| 4253 func = Dart_LookupFunction(cls, Dart_NewString("MyClass")); | 4263 func = Dart_LookupFunction(cls, Dart_NewString("MyClass")); |
| 4254 EXPECT_VALID(func); | 4264 EXPECT_VALID(func); |
| 4255 EXPECT(Dart_IsFunction(func)); | 4265 EXPECT(Dart_IsFunction(func)); |
| 4256 BuildFunctionDescription(&buffer, func); | 4266 BuildFunctionDescription(&buffer, func); |
| 4257 EXPECT_STREQ("MyClass 0 0 constructor", buffer.buf()); | 4267 EXPECT_STREQ("MyClass 0 0 constructor", buffer.buf()); |
| 4258 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4268 owner = Dart_FunctionOwner(func); |
| 4259 EXPECT_VALID(owner); | 4269 EXPECT_VALID(owner); |
| 4260 EXPECT(Dart_IdentityEquals(owner, cls)); | 4270 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4261 | 4271 |
| 4262 // Lookup a named constructor | 4272 // Lookup a named constructor |
| 4263 func = Dart_LookupFunction(cls, Dart_NewString("MyClass.named")); | 4273 func = Dart_LookupFunction(cls, Dart_NewString("MyClass.named")); |
| 4264 EXPECT_VALID(func); | 4274 EXPECT_VALID(func); |
| 4265 EXPECT(Dart_IsFunction(func)); | 4275 EXPECT(Dart_IsFunction(func)); |
| 4266 BuildFunctionDescription(&buffer, func); | 4276 BuildFunctionDescription(&buffer, func); |
| 4267 EXPECT_STREQ("MyClass.named 0 0 constructor", buffer.buf()); | 4277 EXPECT_STREQ("MyClass.named 0 0 constructor", buffer.buf()); |
| 4268 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4278 owner = Dart_FunctionOwner(func); |
| 4269 EXPECT_VALID(owner); | 4279 EXPECT_VALID(owner); |
| 4270 EXPECT(Dart_IdentityEquals(owner, cls)); | 4280 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4271 | 4281 |
| 4272 // Lookup an private unnamed constructor | 4282 // Lookup an private unnamed constructor |
| 4273 func = Dart_LookupFunction(private_cls, Dart_NewString("_PrivateClass")); | 4283 func = Dart_LookupFunction(private_cls, Dart_NewString("_PrivateClass")); |
| 4274 EXPECT_VALID(func); | 4284 EXPECT_VALID(func); |
| 4275 EXPECT(Dart_IsFunction(func)); | 4285 EXPECT(Dart_IsFunction(func)); |
| 4276 BuildFunctionDescription(&buffer, func); | 4286 BuildFunctionDescription(&buffer, func); |
| 4277 EXPECT_STREQ("_PrivateClass 0 0 constructor", buffer.buf()); | 4287 EXPECT_STREQ("_PrivateClass 0 0 constructor", buffer.buf()); |
| 4278 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4288 owner = Dart_FunctionOwner(func); |
| 4279 EXPECT_VALID(owner); | 4289 EXPECT_VALID(owner); |
| 4280 EXPECT(Dart_IdentityEquals(owner, private_cls)); | 4290 EXPECT(Dart_IdentityEquals(owner, private_cls)); |
| 4281 | 4291 |
| 4282 // Lookup a private named constructor | 4292 // Lookup a private named constructor |
| 4283 func = Dart_LookupFunction(private_cls, | 4293 func = Dart_LookupFunction(private_cls, |
| 4284 Dart_NewString("_PrivateClass.named")); | 4294 Dart_NewString("_PrivateClass.named")); |
| 4285 EXPECT_VALID(func); | 4295 EXPECT_VALID(func); |
| 4286 EXPECT(Dart_IsFunction(func)); | 4296 EXPECT(Dart_IsFunction(func)); |
| 4287 BuildFunctionDescription(&buffer, func); | 4297 BuildFunctionDescription(&buffer, func); |
| 4288 EXPECT_STREQ("_PrivateClass.named 0 0 constructor", buffer.buf()); | 4298 EXPECT_STREQ("_PrivateClass.named 0 0 constructor", buffer.buf()); |
| 4289 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4299 owner = Dart_FunctionOwner(func); |
| 4290 EXPECT_VALID(owner); | 4300 EXPECT_VALID(owner); |
| 4291 EXPECT(Dart_IdentityEquals(owner, private_cls)); | 4301 EXPECT(Dart_IdentityEquals(owner, private_cls)); |
| 4292 | 4302 |
| 4293 // Lookup a method. | 4303 // Lookup a method. |
| 4294 func = Dart_LookupFunction(cls, Dart_NewString("a")); | 4304 func = Dart_LookupFunction(cls, Dart_NewString("a")); |
| 4295 EXPECT_VALID(func); | 4305 EXPECT_VALID(func); |
| 4296 EXPECT(Dart_IsFunction(func)); | 4306 EXPECT(Dart_IsFunction(func)); |
| 4297 BuildFunctionDescription(&buffer, func); | 4307 BuildFunctionDescription(&buffer, func); |
| 4298 EXPECT_STREQ("a 0 0", buffer.buf()); | 4308 EXPECT_STREQ("a 0 0", buffer.buf()); |
| 4299 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4309 owner = Dart_FunctionOwner(func); |
| 4300 EXPECT_VALID(owner); | 4310 EXPECT_VALID(owner); |
| 4301 EXPECT(Dart_IdentityEquals(owner, cls)); | 4311 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4302 | 4312 |
| 4303 // Lookup a private method. | 4313 // Lookup a private method. |
| 4304 func = Dart_LookupFunction(cls, Dart_NewString("_b")); | 4314 func = Dart_LookupFunction(cls, Dart_NewString("_b")); |
| 4305 EXPECT_VALID(func); | 4315 EXPECT_VALID(func); |
| 4306 EXPECT(Dart_IsFunction(func)); | 4316 EXPECT(Dart_IsFunction(func)); |
| 4307 BuildFunctionDescription(&buffer, func); | 4317 BuildFunctionDescription(&buffer, func); |
| 4308 EXPECT_STREQ("_b 0 0", buffer.buf()); | 4318 EXPECT_STREQ("_b 0 0", buffer.buf()); |
| 4309 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4319 owner = Dart_FunctionOwner(func); |
| 4310 EXPECT_VALID(owner); | 4320 EXPECT_VALID(owner); |
| 4311 EXPECT(Dart_IdentityEquals(owner, cls)); | 4321 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4312 | 4322 |
| 4313 // Lookup a instance getter. | 4323 // Lookup a instance getter. |
| 4314 func = Dart_LookupFunction(cls, Dart_NewString("c")); | 4324 func = Dart_LookupFunction(cls, Dart_NewString("c")); |
| 4315 EXPECT_VALID(func); | 4325 EXPECT_VALID(func); |
| 4316 EXPECT(Dart_IsFunction(func)); | 4326 EXPECT(Dart_IsFunction(func)); |
| 4317 BuildFunctionDescription(&buffer, func); | 4327 BuildFunctionDescription(&buffer, func); |
| 4318 EXPECT_STREQ("c 0 0 getter", buffer.buf()); | 4328 EXPECT_STREQ("c 0 0 getter", buffer.buf()); |
| 4319 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4329 owner = Dart_FunctionOwner(func); |
| 4320 EXPECT_VALID(owner); | 4330 EXPECT_VALID(owner); |
| 4321 EXPECT(Dart_IdentityEquals(owner, cls)); | 4331 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4322 | 4332 |
| 4323 // Lookup a instance setter. | 4333 // Lookup a instance setter. |
| 4324 func = Dart_LookupFunction(cls, Dart_NewString("d=")); | 4334 func = Dart_LookupFunction(cls, Dart_NewString("d=")); |
| 4325 EXPECT_VALID(func); | 4335 EXPECT_VALID(func); |
| 4326 EXPECT(Dart_IsFunction(func)); | 4336 EXPECT(Dart_IsFunction(func)); |
| 4327 BuildFunctionDescription(&buffer, func); | 4337 BuildFunctionDescription(&buffer, func); |
| 4328 EXPECT_STREQ("d= 1 0 setter", buffer.buf()); | 4338 EXPECT_STREQ("d= 1 0 setter", buffer.buf()); |
| 4329 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4339 owner = Dart_FunctionOwner(func); |
| 4330 EXPECT_VALID(owner); | 4340 EXPECT_VALID(owner); |
| 4331 EXPECT(Dart_IdentityEquals(owner, cls)); | 4341 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4332 | 4342 |
| 4333 // Lookup a private instance getter. | 4343 // Lookup a private instance getter. |
| 4334 func = Dart_LookupFunction(cls, Dart_NewString("_e")); | 4344 func = Dart_LookupFunction(cls, Dart_NewString("_e")); |
| 4335 EXPECT_VALID(func); | 4345 EXPECT_VALID(func); |
| 4336 EXPECT(Dart_IsFunction(func)); | 4346 EXPECT(Dart_IsFunction(func)); |
| 4337 BuildFunctionDescription(&buffer, func); | 4347 BuildFunctionDescription(&buffer, func); |
| 4338 EXPECT_STREQ("_e 0 0 getter", buffer.buf()); | 4348 EXPECT_STREQ("_e 0 0 getter", buffer.buf()); |
| 4339 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4349 owner = Dart_FunctionOwner(func); |
| 4340 EXPECT_VALID(owner); | 4350 EXPECT_VALID(owner); |
| 4341 EXPECT(Dart_IdentityEquals(owner, cls)); | 4351 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4342 | 4352 |
| 4343 // Lookup a private instance setter. | 4353 // Lookup a private instance setter. |
| 4344 func = Dart_LookupFunction(cls, Dart_NewString("_f=")); | 4354 func = Dart_LookupFunction(cls, Dart_NewString("_f=")); |
| 4345 EXPECT_VALID(func); | 4355 EXPECT_VALID(func); |
| 4346 EXPECT(Dart_IsFunction(func)); | 4356 EXPECT(Dart_IsFunction(func)); |
| 4347 BuildFunctionDescription(&buffer, func); | 4357 BuildFunctionDescription(&buffer, func); |
| 4348 EXPECT_STREQ("_f= 1 0 setter", buffer.buf()); | 4358 EXPECT_STREQ("_f= 1 0 setter", buffer.buf()); |
| 4349 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4359 owner = Dart_FunctionOwner(func); |
| 4350 EXPECT_VALID(owner); | 4360 EXPECT_VALID(owner); |
| 4351 EXPECT(Dart_IdentityEquals(owner, cls)); | 4361 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4352 | 4362 |
| 4353 // Lookup a static method. | 4363 // Lookup a static method. |
| 4354 func = Dart_LookupFunction(cls, Dart_NewString("g")); | 4364 func = Dart_LookupFunction(cls, Dart_NewString("g")); |
| 4355 EXPECT_VALID(func); | 4365 EXPECT_VALID(func); |
| 4356 EXPECT(Dart_IsFunction(func)); | 4366 EXPECT(Dart_IsFunction(func)); |
| 4357 BuildFunctionDescription(&buffer, func); | 4367 BuildFunctionDescription(&buffer, func); |
| 4358 EXPECT_STREQ("g 0 0 static", buffer.buf()); | 4368 EXPECT_STREQ("g 0 0 static", buffer.buf()); |
| 4359 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4369 owner = Dart_FunctionOwner(func); |
| 4360 EXPECT_VALID(owner); | 4370 EXPECT_VALID(owner); |
| 4361 EXPECT(Dart_IdentityEquals(owner, cls)); | 4371 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4362 | 4372 |
| 4363 // Lookup a private static method. | 4373 // Lookup a private static method. |
| 4364 func = Dart_LookupFunction(cls, Dart_NewString("_h")); | 4374 func = Dart_LookupFunction(cls, Dart_NewString("_h")); |
| 4365 EXPECT_VALID(func); | 4375 EXPECT_VALID(func); |
| 4366 EXPECT(Dart_IsFunction(func)); | 4376 EXPECT(Dart_IsFunction(func)); |
| 4367 BuildFunctionDescription(&buffer, func); | 4377 BuildFunctionDescription(&buffer, func); |
| 4368 EXPECT_STREQ("_h 0 0 static", buffer.buf()); | 4378 EXPECT_STREQ("_h 0 0 static", buffer.buf()); |
| 4369 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4379 owner = Dart_FunctionOwner(func); |
| 4370 EXPECT_VALID(owner); | 4380 EXPECT_VALID(owner); |
| 4371 EXPECT(Dart_IdentityEquals(owner, cls)); | 4381 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4372 | 4382 |
| 4373 // Lookup a static getter. | 4383 // Lookup a static getter. |
| 4374 func = Dart_LookupFunction(cls, Dart_NewString("i")); | 4384 func = Dart_LookupFunction(cls, Dart_NewString("i")); |
| 4375 EXPECT_VALID(func); | 4385 EXPECT_VALID(func); |
| 4376 EXPECT(Dart_IsFunction(func)); | 4386 EXPECT(Dart_IsFunction(func)); |
| 4377 BuildFunctionDescription(&buffer, func); | 4387 BuildFunctionDescription(&buffer, func); |
| 4378 EXPECT_STREQ("i 0 0 static getter", buffer.buf()); | 4388 EXPECT_STREQ("i 0 0 static getter", buffer.buf()); |
| 4379 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4389 owner = Dart_FunctionOwner(func); |
| 4380 EXPECT_VALID(owner); | 4390 EXPECT_VALID(owner); |
| 4381 EXPECT(Dart_IdentityEquals(owner, cls)); | 4391 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4382 | 4392 |
| 4383 // Lookup a static setter. | 4393 // Lookup a static setter. |
| 4384 func = Dart_LookupFunction(cls, Dart_NewString("j=")); | 4394 func = Dart_LookupFunction(cls, Dart_NewString("j=")); |
| 4385 EXPECT_VALID(func); | 4395 EXPECT_VALID(func); |
| 4386 EXPECT(Dart_IsFunction(func)); | 4396 EXPECT(Dart_IsFunction(func)); |
| 4387 BuildFunctionDescription(&buffer, func); | 4397 BuildFunctionDescription(&buffer, func); |
| 4388 EXPECT_STREQ("j= 1 0 static setter", buffer.buf()); | 4398 EXPECT_STREQ("j= 1 0 static setter", buffer.buf()); |
| 4389 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4399 owner = Dart_FunctionOwner(func); |
| 4390 EXPECT_VALID(owner); | 4400 EXPECT_VALID(owner); |
| 4391 EXPECT(Dart_IdentityEquals(owner, cls)); | 4401 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4392 | 4402 |
| 4393 // Lookup a private static getter. | 4403 // Lookup a private static getter. |
| 4394 func = Dart_LookupFunction(cls, Dart_NewString("_k")); | 4404 func = Dart_LookupFunction(cls, Dart_NewString("_k")); |
| 4395 EXPECT_VALID(func); | 4405 EXPECT_VALID(func); |
| 4396 EXPECT(Dart_IsFunction(func)); | 4406 EXPECT(Dart_IsFunction(func)); |
| 4397 BuildFunctionDescription(&buffer, func); | 4407 BuildFunctionDescription(&buffer, func); |
| 4398 EXPECT_STREQ("_k 0 0 static getter", buffer.buf()); | 4408 EXPECT_STREQ("_k 0 0 static getter", buffer.buf()); |
| 4399 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4409 owner = Dart_FunctionOwner(func); |
| 4400 EXPECT_VALID(owner); | 4410 EXPECT_VALID(owner); |
| 4401 EXPECT(Dart_IdentityEquals(owner, cls)); | 4411 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4402 | 4412 |
| 4403 // Lookup a private static setter. | 4413 // Lookup a private static setter. |
| 4404 func = Dart_LookupFunction(cls, Dart_NewString("_l=")); | 4414 func = Dart_LookupFunction(cls, Dart_NewString("_l=")); |
| 4405 EXPECT_VALID(func); | 4415 EXPECT_VALID(func); |
| 4406 EXPECT(Dart_IsFunction(func)); | 4416 EXPECT(Dart_IsFunction(func)); |
| 4407 BuildFunctionDescription(&buffer, func); | 4417 BuildFunctionDescription(&buffer, func); |
| 4408 EXPECT_STREQ("_l= 1 0 static setter", buffer.buf()); | 4418 EXPECT_STREQ("_l= 1 0 static setter", buffer.buf()); |
| 4409 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4419 owner = Dart_FunctionOwner(func); |
| 4410 EXPECT_VALID(owner); | 4420 EXPECT_VALID(owner); |
| 4411 EXPECT(Dart_IdentityEquals(owner, cls)); | 4421 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4412 | 4422 |
| 4413 // Lookup an abstract method. | 4423 // Lookup an abstract method. |
| 4414 func = Dart_LookupFunction(cls, Dart_NewString("m")); | 4424 func = Dart_LookupFunction(cls, Dart_NewString("m")); |
| 4415 EXPECT_VALID(func); | 4425 EXPECT_VALID(func); |
| 4416 EXPECT(Dart_IsFunction(func)); | 4426 EXPECT(Dart_IsFunction(func)); |
| 4417 BuildFunctionDescription(&buffer, func); | 4427 BuildFunctionDescription(&buffer, func); |
| 4418 EXPECT_STREQ("m 0 0 abstract", buffer.buf()); | 4428 EXPECT_STREQ("m 0 0 abstract", buffer.buf()); |
| 4419 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4429 owner = Dart_FunctionOwner(func); |
| 4420 EXPECT_VALID(owner); | 4430 EXPECT_VALID(owner); |
| 4421 EXPECT(Dart_IdentityEquals(owner, cls)); | 4431 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4422 | 4432 |
| 4423 // Lookup a private abstract method. | 4433 // Lookup a private abstract method. |
| 4424 func = Dart_LookupFunction(cls, Dart_NewString("_n")); | 4434 func = Dart_LookupFunction(cls, Dart_NewString("_n")); |
| 4425 EXPECT_VALID(func); | 4435 EXPECT_VALID(func); |
| 4426 EXPECT(Dart_IsFunction(func)); | 4436 EXPECT(Dart_IsFunction(func)); |
| 4427 BuildFunctionDescription(&buffer, func); | 4437 BuildFunctionDescription(&buffer, func); |
| 4428 EXPECT_STREQ("_n 0 0 abstract", buffer.buf()); | 4438 EXPECT_STREQ("_n 0 0 abstract", buffer.buf()); |
| 4429 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4439 owner = Dart_FunctionOwner(func); |
| 4430 EXPECT_VALID(owner); | 4440 EXPECT_VALID(owner); |
| 4431 EXPECT(Dart_IdentityEquals(owner, cls)); | 4441 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4432 | 4442 |
| 4433 // Lookup a abstract getter. | 4443 // Lookup a abstract getter. |
| 4434 func = Dart_LookupFunction(cls, Dart_NewString("o")); | 4444 func = Dart_LookupFunction(cls, Dart_NewString("o")); |
| 4435 EXPECT_VALID(func); | 4445 EXPECT_VALID(func); |
| 4436 EXPECT(Dart_IsFunction(func)); | 4446 EXPECT(Dart_IsFunction(func)); |
| 4437 BuildFunctionDescription(&buffer, func); | 4447 BuildFunctionDescription(&buffer, func); |
| 4438 EXPECT_STREQ("o 0 0 abstract getter", buffer.buf()); | 4448 EXPECT_STREQ("o 0 0 abstract getter", buffer.buf()); |
| 4439 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4449 owner = Dart_FunctionOwner(func); |
| 4440 EXPECT_VALID(owner); | 4450 EXPECT_VALID(owner); |
| 4441 EXPECT(Dart_IdentityEquals(owner, cls)); | 4451 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4442 | 4452 |
| 4443 // Lookup a abstract setter. | 4453 // Lookup a abstract setter. |
| 4444 func = Dart_LookupFunction(cls, Dart_NewString("p=")); | 4454 func = Dart_LookupFunction(cls, Dart_NewString("p=")); |
| 4445 EXPECT_VALID(func); | 4455 EXPECT_VALID(func); |
| 4446 EXPECT(Dart_IsFunction(func)); | 4456 EXPECT(Dart_IsFunction(func)); |
| 4447 BuildFunctionDescription(&buffer, func); | 4457 BuildFunctionDescription(&buffer, func); |
| 4448 EXPECT_STREQ("p= 1 0 abstract setter", buffer.buf()); | 4458 EXPECT_STREQ("p= 1 0 abstract setter", buffer.buf()); |
| 4449 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4459 owner = Dart_FunctionOwner(func); |
| 4450 EXPECT_VALID(owner); | 4460 EXPECT_VALID(owner); |
| 4451 EXPECT(Dart_IdentityEquals(owner, cls)); | 4461 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4452 | 4462 |
| 4453 // Lookup a private abstract getter. | 4463 // Lookup a private abstract getter. |
| 4454 func = Dart_LookupFunction(cls, Dart_NewString("_q")); | 4464 func = Dart_LookupFunction(cls, Dart_NewString("_q")); |
| 4455 EXPECT_VALID(func); | 4465 EXPECT_VALID(func); |
| 4456 EXPECT(Dart_IsFunction(func)); | 4466 EXPECT(Dart_IsFunction(func)); |
| 4457 BuildFunctionDescription(&buffer, func); | 4467 BuildFunctionDescription(&buffer, func); |
| 4458 EXPECT_STREQ("_q 0 0 abstract getter", buffer.buf()); | 4468 EXPECT_STREQ("_q 0 0 abstract getter", buffer.buf()); |
| 4459 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4469 owner = Dart_FunctionOwner(func); |
| 4460 EXPECT_VALID(owner); | 4470 EXPECT_VALID(owner); |
| 4461 EXPECT(Dart_IdentityEquals(owner, cls)); | 4471 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4462 | 4472 |
| 4463 // Lookup a private abstract setter. | 4473 // Lookup a private abstract setter. |
| 4464 func = Dart_LookupFunction(cls, Dart_NewString("_r=")); | 4474 func = Dart_LookupFunction(cls, Dart_NewString("_r=")); |
| 4465 EXPECT_VALID(func); | 4475 EXPECT_VALID(func); |
| 4466 EXPECT(Dart_IsFunction(func)); | 4476 EXPECT(Dart_IsFunction(func)); |
| 4467 BuildFunctionDescription(&buffer, func); | 4477 BuildFunctionDescription(&buffer, func); |
| 4468 EXPECT_STREQ("_r= 1 0 abstract setter", buffer.buf()); | 4478 EXPECT_STREQ("_r= 1 0 abstract setter", buffer.buf()); |
| 4469 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4479 owner = Dart_FunctionOwner(func); |
| 4470 EXPECT_VALID(owner); | 4480 EXPECT_VALID(owner); |
| 4471 EXPECT(Dart_IdentityEquals(owner, cls)); | 4481 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4472 | 4482 |
| 4473 // Lookup a method with fixed and optional parameters. | 4483 // Lookup a method with fixed and optional parameters. |
| 4474 func = Dart_LookupFunction(cls, Dart_NewString("s")); | 4484 func = Dart_LookupFunction(cls, Dart_NewString("s")); |
| 4475 EXPECT_VALID(func); | 4485 EXPECT_VALID(func); |
| 4476 EXPECT(Dart_IsFunction(func)); | 4486 EXPECT(Dart_IsFunction(func)); |
| 4477 BuildFunctionDescription(&buffer, func); | 4487 BuildFunctionDescription(&buffer, func); |
| 4478 EXPECT_STREQ("s 1 2", buffer.buf()); | 4488 EXPECT_STREQ("s 1 2", buffer.buf()); |
| 4479 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4489 owner = Dart_FunctionOwner(func); |
| 4480 EXPECT_VALID(owner); | 4490 EXPECT_VALID(owner); |
| 4481 EXPECT(Dart_IdentityEquals(owner, cls)); | 4491 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4482 | 4492 |
| 4483 // Lookup a method with only optional parameters. | 4493 // Lookup a method with only optional parameters. |
| 4484 func = Dart_LookupFunction(cls, Dart_NewString("t")); | 4494 func = Dart_LookupFunction(cls, Dart_NewString("t")); |
| 4485 EXPECT_VALID(func); | 4495 EXPECT_VALID(func); |
| 4486 EXPECT(Dart_IsFunction(func)); | 4496 EXPECT(Dart_IsFunction(func)); |
| 4487 BuildFunctionDescription(&buffer, func); | 4497 BuildFunctionDescription(&buffer, func); |
| 4488 EXPECT_STREQ("t 0 3", buffer.buf()); | 4498 EXPECT_STREQ("t 0 3", buffer.buf()); |
| 4489 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4499 owner = Dart_FunctionOwner(func); |
| 4490 EXPECT_VALID(owner); | 4500 EXPECT_VALID(owner); |
| 4491 EXPECT(Dart_IdentityEquals(owner, cls)); | 4501 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4492 | 4502 |
| 4493 // Lookup an operator | 4503 // Lookup an operator |
| 4494 func = Dart_LookupFunction(cls, Dart_NewString("==")); | 4504 func = Dart_LookupFunction(cls, Dart_NewString("==")); |
| 4495 EXPECT_VALID(func); | 4505 EXPECT_VALID(func); |
| 4496 EXPECT(Dart_IsFunction(func)); | 4506 EXPECT(Dart_IsFunction(func)); |
| 4497 BuildFunctionDescription(&buffer, func); | 4507 BuildFunctionDescription(&buffer, func); |
| 4498 EXPECT_STREQ("== 1 0", buffer.buf()); | 4508 EXPECT_STREQ("== 1 0", buffer.buf()); |
| 4499 owner = Dart_FunctionEnclosingClassOrLibrary(func); | 4509 owner = Dart_FunctionOwner(func); |
| 4500 EXPECT_VALID(owner); | 4510 EXPECT_VALID(owner); |
| 4501 EXPECT(Dart_IdentityEquals(owner, cls)); | 4511 EXPECT(Dart_IdentityEquals(owner, cls)); |
| 4502 | 4512 |
| 4503 // Lookup a function that does not exist from a library. | 4513 // Lookup a function that does not exist from a library. |
| 4504 func = Dart_LookupFunction(lib, Dart_NewString("DoesNotExist")); | 4514 func = Dart_LookupFunction(lib, Dart_NewString("DoesNotExist")); |
| 4505 EXPECT(Dart_IsNull(func)); | 4515 EXPECT(Dart_IsNull(func)); |
| 4506 | 4516 |
| 4507 // Lookup a function that does not exist from a class. | 4517 // Lookup a function that does not exist from a class. |
| 4508 func = Dart_LookupFunction(cls, Dart_NewString("DoesNotExist")); | 4518 func = Dart_LookupFunction(cls, Dart_NewString("DoesNotExist")); |
| 4509 EXPECT(Dart_IsNull(func)); | 4519 EXPECT(Dart_IsNull(func)); |
| (...skipping 2023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6533 EXPECT(Dart_IsString(str)); | 6543 EXPECT(Dart_IsString(str)); |
| 6534 len = -1; | 6544 len = -1; |
| 6535 EXPECT_VALID(Dart_StringLength(str, &len)); | 6545 EXPECT_VALID(Dart_StringLength(str, &len)); |
| 6536 EXPECT_EQ(0, len); | 6546 EXPECT_EQ(0, len); |
| 6537 } | 6547 } |
| 6538 | 6548 |
| 6539 | 6549 |
| 6540 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 6550 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
| 6541 | 6551 |
| 6542 } // namespace dart | 6552 } // namespace dart |
| OLD | NEW |