OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 part of dart2js.js_emitter; | 5 part of dart2js.js_emitter; |
6 | 6 |
7 class InterceptorStubGenerator { | 7 class InterceptorStubGenerator { |
8 final Compiler compiler; | 8 final Compiler compiler; |
9 final Namer namer; | 9 final Namer namer; |
10 final JavaScriptBackend backend; | 10 final JavaScriptBackend backend; |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 }''', | 162 }''', |
163 [ | 163 [ |
164 interceptorFor(helpers.jsJavaScriptFunctionClass), | 164 interceptorFor(helpers.jsJavaScriptFunctionClass), |
165 backend.emitter | 165 backend.emitter |
166 .constructorAccess(compiler.commonElements.objectClass), | 166 .constructorAccess(compiler.commonElements.objectClass), |
167 backend.emitter | 167 backend.emitter |
168 .staticFunctionAccess(helpers.getNativeInterceptorMethod) | 168 .staticFunctionAccess(helpers.getNativeInterceptorMethod) |
169 ])); | 169 ])); |
170 } else { | 170 } else { |
171 ClassElement jsUnknown = helpers.jsUnknownJavaScriptObjectClass; | 171 ClassElement jsUnknown = helpers.jsUnknownJavaScriptObjectClass; |
172 if (compiler.codegenWorld.directlyInstantiatedClasses | 172 if (compiler.codegenWorldBuilder.directlyInstantiatedClasses |
173 .contains(jsUnknown)) { | 173 .contains(jsUnknown)) { |
174 statements.add(js.statement('if (!(receiver instanceof #)) return #;', [ | 174 statements.add(js.statement('if (!(receiver instanceof #)) return #;', [ |
175 backend.emitter | 175 backend.emitter |
176 .constructorAccess(compiler.commonElements.objectClass), | 176 .constructorAccess(compiler.commonElements.objectClass), |
177 interceptorFor(jsUnknown) | 177 interceptorFor(jsUnknown) |
178 ])); | 178 ])); |
179 } | 179 } |
180 | 180 |
181 statements.add(js.statement('return receiver')); | 181 statements.add(js.statement('return receiver')); |
182 } | 182 } |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 | 395 |
396 var map = new jsAst.ObjectInitializer(properties); | 396 var map = new jsAst.ObjectInitializer(properties); |
397 elements.add(map); | 397 elements.add(map); |
398 } | 398 } |
399 } | 399 } |
400 } | 400 } |
401 | 401 |
402 return new jsAst.ArrayInitializer(elements); | 402 return new jsAst.ArrayInitializer(elements); |
403 } | 403 } |
404 } | 404 } |
OLD | NEW |