| 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 |