| 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 import 'dart:collection'; | 5 import 'dart:collection'; | 
| 6 | 6 | 
| 7 import 'package:js_runtime/shared/embedded_names.dart'; | 7 import 'package:js_runtime/shared/embedded_names.dart'; | 
| 8 | 8 | 
| 9 import '../closure.dart'; | 9 import '../closure.dart'; | 
| 10 import '../common.dart'; | 10 import '../common.dart'; | 
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 387   /** | 387   /** | 
| 388    * Try to inline [element] within the correct context of the builder. The | 388    * Try to inline [element] within the correct context of the builder. The | 
| 389    * insertion point is the state of the builder. | 389    * insertion point is the state of the builder. | 
| 390    */ | 390    */ | 
| 391   bool tryInlineMethod(Element element, Selector selector, TypeMask mask, | 391   bool tryInlineMethod(Element element, Selector selector, TypeMask mask, | 
| 392       List<HInstruction> providedArguments, ast.Node currentNode, | 392       List<HInstruction> providedArguments, ast.Node currentNode, | 
| 393       {InterfaceType instanceType}) { | 393       {InterfaceType instanceType}) { | 
| 394     // TODO(johnniwinther): Register this on the [registry]. Currently the | 394     // TODO(johnniwinther): Register this on the [registry]. Currently the | 
| 395     // [CodegenRegistry] calls the enqueuer, but [element] should _not_ be | 395     // [CodegenRegistry] calls the enqueuer, but [element] should _not_ be | 
| 396     // enqueued. | 396     // enqueued. | 
| 397     backend.registerStaticUse(element, compiler.enqueuer.codegen); | 397     backend.registerStaticUse(element, forResolution: false); | 
| 398 | 398 | 
| 399     if (backend.isJsInterop(element) && !element.isFactoryConstructor) { | 399     if (backend.isJsInterop(element) && !element.isFactoryConstructor) { | 
| 400       // We only inline factory JavaScript interop constructors. | 400       // We only inline factory JavaScript interop constructors. | 
| 401       return false; | 401       return false; | 
| 402     } | 402     } | 
| 403 | 403 | 
| 404     // Ensure that [element] is an implementation element. | 404     // Ensure that [element] is an implementation element. | 
| 405     element = element.implementation; | 405     element = element.implementation; | 
| 406 | 406 | 
| 407     if (compiler.elementHasCompileTimeError(element)) return false; | 407     if (compiler.elementHasCompileTimeError(element)) return false; | 
| (...skipping 6655 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7063     if (unaliased is TypedefType) throw 'unable to unalias $type'; | 7063     if (unaliased is TypedefType) throw 'unable to unalias $type'; | 
| 7064     unaliased.accept(this, builder); | 7064     unaliased.accept(this, builder); | 
| 7065   } | 7065   } | 
| 7066 | 7066 | 
| 7067   void visitDynamicType(DynamicType type, SsaBuilder builder) { | 7067   void visitDynamicType(DynamicType type, SsaBuilder builder) { | 
| 7068     JavaScriptBackend backend = builder.compiler.backend; | 7068     JavaScriptBackend backend = builder.compiler.backend; | 
| 7069     ClassElement cls = backend.helpers.DynamicRuntimeType; | 7069     ClassElement cls = backend.helpers.DynamicRuntimeType; | 
| 7070     builder.push(new HDynamicType(type, new TypeMask.exact(cls, closedWorld))); | 7070     builder.push(new HDynamicType(type, new TypeMask.exact(cls, closedWorld))); | 
| 7071   } | 7071   } | 
| 7072 } | 7072 } | 
| OLD | NEW | 
|---|