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 "lib/invocation_mirror.h" | 5 #include "lib/invocation_mirror.h" |
6 #include "vm/bootstrap_natives.h" | 6 #include "vm/bootstrap_natives.h" |
7 #include "vm/class_finalizer.h" | 7 #include "vm/class_finalizer.h" |
8 #include "vm/compiler.h" | 8 #include "vm/compiler.h" |
9 #include "vm/dart_entry.h" | 9 #include "vm/dart_entry.h" |
10 #include "vm/exceptions.h" | 10 #include "vm/exceptions.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 | 94 |
95 Exceptions::ThrowByType(Exceptions::kNoSuchMethod, args); | 95 Exceptions::ThrowByType(Exceptions::kNoSuchMethod, args); |
96 UNREACHABLE(); | 96 UNREACHABLE(); |
97 } | 97 } |
98 | 98 |
99 | 99 |
100 static void EnsureConstructorsAreCompiled(const Function& func) { | 100 static void EnsureConstructorsAreCompiled(const Function& func) { |
101 // Only generative constructors can have initializing formals. | 101 // Only generative constructors can have initializing formals. |
102 if (!func.IsConstructor()) return; | 102 if (!func.IsConstructor()) return; |
103 | 103 |
104 const Class& cls = Class::Handle(func.Owner()); | 104 Isolate* isolate = Isolate::Current(); |
105 const Error& error = Error::Handle(cls.EnsureIsFinalized(Isolate::Current())); | 105 const Class& cls = Class::Handle(isolate, func.Owner()); |
| 106 const Error& error = Error::Handle( |
| 107 isolate, cls.EnsureIsFinalized(Isolate::Current())); |
106 if (!error.IsNull()) { | 108 if (!error.IsNull()) { |
107 ThrowInvokeError(error); | 109 ThrowInvokeError(error); |
108 UNREACHABLE(); | 110 UNREACHABLE(); |
109 } | 111 } |
110 if (!func.HasCode()) { | 112 if (!func.HasCode()) { |
111 const Error& error = Error::Handle(Compiler::CompileFunction(func)); | 113 const Error& error = Error::Handle( |
| 114 isolate, Compiler::CompileFunction(isolate, func)); |
112 if (!error.IsNull()) { | 115 if (!error.IsNull()) { |
113 ThrowInvokeError(error); | 116 ThrowInvokeError(error); |
114 UNREACHABLE(); | 117 UNREACHABLE(); |
115 } | 118 } |
116 } | 119 } |
117 } | 120 } |
118 | 121 |
119 static RawInstance* CreateParameterMirrorList(const Function& func, | 122 static RawInstance* CreateParameterMirrorList(const Function& func, |
120 const Instance& owner_mirror) { | 123 const Instance& owner_mirror) { |
121 HANDLESCOPE(Isolate::Current()); | 124 HANDLESCOPE(Isolate::Current()); |
(...skipping 2126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2248 } | 2251 } |
2249 | 2252 |
2250 DEFINE_NATIVE_ENTRY(TypeMirror_moreSpecificTest, 2) { | 2253 DEFINE_NATIVE_ENTRY(TypeMirror_moreSpecificTest, 2) { |
2251 GET_NON_NULL_NATIVE_ARGUMENT(AbstractType, a, arguments->NativeArgAt(0)); | 2254 GET_NON_NULL_NATIVE_ARGUMENT(AbstractType, a, arguments->NativeArgAt(0)); |
2252 GET_NON_NULL_NATIVE_ARGUMENT(AbstractType, b, arguments->NativeArgAt(1)); | 2255 GET_NON_NULL_NATIVE_ARGUMENT(AbstractType, b, arguments->NativeArgAt(1)); |
2253 return Bool::Get(a.IsMoreSpecificThan(b, NULL)).raw(); | 2256 return Bool::Get(a.IsMoreSpecificThan(b, NULL)).raw(); |
2254 } | 2257 } |
2255 | 2258 |
2256 | 2259 |
2257 } // namespace dart | 2260 } // namespace dart |
OLD | NEW |