| 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 part of js_backend; | 5 part of js_backend; |
| 6 | 6 |
| 7 const VERBOSE_OPTIMIZER_HINTS = false; | 7 const VERBOSE_OPTIMIZER_HINTS = false; |
| 8 | 8 |
| 9 const bool USE_CPS_IR = const bool.fromEnvironment("USE_CPS_IR"); | 9 const bool USE_CPS_IR = const bool.fromEnvironment("USE_CPS_IR"); |
| 10 | 10 |
| (...skipping 936 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 947 // TODO(ngeoffray): Should we have the resolver register those instead? | 947 // TODO(ngeoffray): Should we have the resolver register those instead? |
| 948 Element e = findHelper('boolConversionCheck'); | 948 Element e = findHelper('boolConversionCheck'); |
| 949 if (e != null) enqueue(world, e, registry); | 949 if (e != null) enqueue(world, e, registry); |
| 950 } | 950 } |
| 951 | 951 |
| 952 if (TRACE_CALLS) { | 952 if (TRACE_CALLS) { |
| 953 traceHelper = findHelper('traceHelper'); | 953 traceHelper = findHelper('traceHelper'); |
| 954 assert(traceHelper != null); | 954 assert(traceHelper != null); |
| 955 enqueueInResolution(traceHelper, registry); | 955 enqueueInResolution(traceHelper, registry); |
| 956 } | 956 } |
| 957 |
| 958 // TODO(ahe): Don't know who uses this class, but it wasn't correctly |
| 959 // enqueued after we stopped compiling the @proxy constant eagerly. |
| 960 world.registerInstantiatedClass( |
| 961 interceptorsLibrary.findLocal('JSUInt31'), registry); |
| 962 |
| 957 registerCheckedModeHelpers(registry); | 963 registerCheckedModeHelpers(registry); |
| 958 } | 964 } |
| 959 | 965 |
| 960 onResolutionComplete() { | 966 onResolutionComplete() { |
| 961 super.onResolutionComplete(); | 967 super.onResolutionComplete(); |
| 962 computeMembersNeededForReflection(); | 968 computeMembersNeededForReflection(); |
| 963 rti.computeClassesNeedingRti(); | 969 rti.computeClassesNeedingRti(); |
| 964 computeFunctionsToAlwaysInline(); | 970 computeFunctionsToAlwaysInline(); |
| 965 } | 971 } |
| 966 | 972 |
| (...skipping 1423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2390 return findHelper('mainHasTooManyParameters'); | 2396 return findHelper('mainHasTooManyParameters'); |
| 2391 } | 2397 } |
| 2392 | 2398 |
| 2393 void forgetElement(Element element) { | 2399 void forgetElement(Element element) { |
| 2394 constants.forgetElement(element); | 2400 constants.forgetElement(element); |
| 2395 constantCompilerTask.dartConstantCompiler.forgetElement(element); | 2401 constantCompilerTask.dartConstantCompiler.forgetElement(element); |
| 2396 aliasedSuperMembers.remove(element); | 2402 aliasedSuperMembers.remove(element); |
| 2397 } | 2403 } |
| 2398 | 2404 |
| 2399 void registerMainHasArguments(Enqueuer enqueuer) { | 2405 void registerMainHasArguments(Enqueuer enqueuer) { |
| 2406 // The first argument could be a list of strings. |
| 2407 enqueuer.registerInstantiatedClass( |
| 2408 listImplementation, compiler.globalDependencies); |
| 2409 enqueuer.registerInstantiatedClass( |
| 2410 stringImplementation, compiler.globalDependencies); |
| 2411 |
| 2400 // If the main method takes arguments, this compilation could be the target | 2412 // If the main method takes arguments, this compilation could be the target |
| 2401 // of Isolate.spawnUri. Strictly speaking, that can happen also if main | 2413 // of Isolate.spawnUri. Strictly speaking, that can happen also if main |
| 2402 // takes no arguments, but in this case the spawned isolate can't | 2414 // takes no arguments, but in this case the spawned isolate can't |
| 2403 // communicate with the spawning isolate. | 2415 // communicate with the spawning isolate. |
| 2404 enqueuer.enableIsolateSupport(); | 2416 enqueuer.enableIsolateSupport(); |
| 2405 } | 2417 } |
| 2406 | 2418 |
| 2407 /// Returns the filename for the output-unit named [name]. | 2419 /// Returns the filename for the output-unit named [name]. |
| 2408 /// | 2420 /// |
| 2409 /// The filename is of the form "<main output file>_<name>.part.js". | 2421 /// The filename is of the form "<main output file>_<name>.part.js". |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2700 } | 2712 } |
| 2701 } | 2713 } |
| 2702 | 2714 |
| 2703 /// Records that [constant] is used by the element behind [registry]. | 2715 /// Records that [constant] is used by the element behind [registry]. |
| 2704 class Dependency { | 2716 class Dependency { |
| 2705 final ConstantValue constant; | 2717 final ConstantValue constant; |
| 2706 final Element annotatedElement; | 2718 final Element annotatedElement; |
| 2707 | 2719 |
| 2708 const Dependency(this.constant, this.annotatedElement); | 2720 const Dependency(this.constant, this.annotatedElement); |
| 2709 } | 2721 } |
| OLD | NEW |