Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(570)

Side by Side Diff: lib/compiler/implementation/js_backend/backend.dart

Issue 10825386: Use JavaScript runtime semantics when constant folding. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 typedef void Recompile(Element element); 5 typedef void Recompile(Element element);
6 6
7 class ReturnInfo { 7 class ReturnInfo {
8 HType returnType; 8 HType returnType;
9 List<Element> compiledFunctions; 9 List<Element> compiledFunctions;
10 10
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 return <CompilerTask>[builder, optimizer, generator, emitter]; 314 return <CompilerTask>[builder, optimizer, generator, emitter];
315 } 315 }
316 316
317 JavaScriptBackend(Compiler compiler, bool generateSourceMap) 317 JavaScriptBackend(Compiler compiler, bool generateSourceMap)
318 : emitter = new CodeEmitterTask(compiler, generateSourceMap), 318 : emitter = new CodeEmitterTask(compiler, generateSourceMap),
319 fieldInitializers = new Map<Element, Map<Element, HType>>(), 319 fieldInitializers = new Map<Element, Map<Element, HType>>(),
320 fieldConstructorSetters = new Map<Element, Map<Element, HType>>(), 320 fieldConstructorSetters = new Map<Element, Map<Element, HType>>(),
321 fieldSettersType = new Map<Element, Map<Element, HType>>(), 321 fieldSettersType = new Map<Element, Map<Element, HType>>(),
322 returnInfo = new Map<Element, ReturnInfo>(), 322 returnInfo = new Map<Element, ReturnInfo>(),
323 invalidateAfterCodegen = new List<Element>(), 323 invalidateAfterCodegen = new List<Element>(),
324 super(compiler) { 324 super(compiler, constantSystem: JAVA_SCRIPT_CONSTANT_SYSTEM) {
325 builder = new SsaBuilderTask(this); 325 builder = new SsaBuilderTask(this);
326 optimizer = new SsaOptimizerTask(this); 326 optimizer = new SsaOptimizerTask(this);
327 generator = new SsaCodeGeneratorTask(this); 327 generator = new SsaCodeGeneratorTask(this);
328 argumentTypes = new ArgumentTypesRegistry(this); 328 argumentTypes = new ArgumentTypesRegistry(this);
329 } 329 }
330 330
331 Element get cyclicThrowHelper() { 331 Element get cyclicThrowHelper() {
332 return compiler.findHelper(const SourceString("throwCyclicInit")); 332 return compiler.findHelper(const SourceString("throwCyclicInit"));
333 } 333 }
334 334
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 return const SourceString('listSuperTypeCheck'); 594 return const SourceString('listSuperTypeCheck');
595 } 595 }
596 } else if (nativeCheck) { 596 } else if (nativeCheck) {
597 return const SourceString('callTypeCheck'); 597 return const SourceString('callTypeCheck');
598 } else { 598 } else {
599 return const SourceString('propertyTypeCheck'); 599 return const SourceString('propertyTypeCheck');
600 } 600 }
601 } 601 }
602 } 602 }
603 } 603 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698