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

Side by Side Diff: compiler/java/com/google/dart/compiler/backend/js/GenerateJavascriptAST.java

Issue 8346018: Insure that isolate specific methods are generated after "inherits" (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 9 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 package com.google.dart.compiler.backend.js; 5 package com.google.dart.compiler.backend.js;
6 6
7 import com.google.common.collect.Lists; 7 import com.google.common.collect.Lists;
8 import com.google.dart.compiler.DartCompilationError; 8 import com.google.dart.compiler.DartCompilationError;
9 import com.google.dart.compiler.DartCompilerContext; 9 import com.google.dart.compiler.DartCompilerContext;
10 import com.google.dart.compiler.DartCompilerErrorCode; 10 import com.google.dart.compiler.DartCompilerErrorCode;
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 if (optStrategy.canEmitOptimizedClassConstructor(classElement)) { 414 if (optStrategy.canEmitOptimizedClassConstructor(classElement)) {
415 createInlinedClassConstructor(x); 415 createInlinedClassConstructor(x);
416 } else { 416 } else {
417 JsFunction jsClass = new JsFunction(globalScope, classJsName).setSourc eRef(x); 417 JsFunction jsClass = new JsFunction(globalScope, classJsName).setSourc eRef(x);
418 jsClass.setIsConstructor(true); 418 jsClass.setIsConstructor(true);
419 jsClass.setBody(new JsBlock()); 419 jsClass.setBody(new JsBlock());
420 globalBlock.getStatements().add(jsClass.makeStmt()); 420 globalBlock.getStatements().add(jsClass.makeStmt());
421 } 421 }
422 } 422 }
423 423
424 maybeInjectIsolateMethods(classElement);
425
426 if (classElement.isInterface()) { 424 if (classElement.isInterface()) {
427 rtt.generateRuntimeTypeInfo(x); 425 rtt.generateRuntimeTypeInfo(x);
428 426
429 // Emit only static final fields for interfaces. 427 // Emit only static final fields for interfaces.
430 for (Element member : classElement.getMembers()) { 428 for (Element member : classElement.getMembers()) {
431 if (ElementKind.of(member).equals(ElementKind.FIELD)) { 429 if (ElementKind.of(member).equals(ElementKind.FIELD)) {
432 Modifiers modifiers = member.getModifiers(); 430 Modifiers modifiers = member.getModifiers();
433 if (modifiers.isStatic() && !modifiers.isAbstractField()) { 431 if (modifiers.isStatic() && !modifiers.isAbstractField()) {
434 assert modifiers.isFinal(); 432 assert modifiers.isFinal();
435 generateField((FieldElement) member); 433 generateField((FieldElement) member);
436 } 434 }
437 } 435 }
438 } 436 }
439 } else { 437 } else {
440 // Inherits. 438 // Inherits.
441 if (x.getSuperSymbol() != null) { 439 if (x.getSuperSymbol() != null) {
442 JsNameRef superRef = getJsName(x.getSuperSymbol()).makeRef(); 440 JsNameRef superRef = getJsName(x.getSuperSymbol()).makeRef();
443 JsInvocation inherits = AstUtil.newInvocation( 441 JsInvocation inherits = AstUtil.newInvocation(
444 new JsNameRef("$inherits"), 442 new JsNameRef("$inherits"),
445 classJsName.makeRef(), 443 classJsName.makeRef(),
446 superRef); 444 superRef);
447 inherits.setSourceRef(x); 445 inherits.setSourceRef(x);
448 globalBlock.getStatements().add(inherits.makeStmt()); 446 globalBlock.getStatements().add(inherits.makeStmt());
449 } 447 }
450 448
449 maybeInjectIsolateMethods(classElement);
451 rtt.generateRuntimeTypeInfo(x); 450 rtt.generateRuntimeTypeInfo(x);
452 451
453 List<Element> classMembers = new ArrayList<Element>(); 452 List<Element> classMembers = new ArrayList<Element>();
454 classMembers.addAll(classElement.getConstructors()); 453 classMembers.addAll(classElement.getConstructors());
455 for (Element element : classElement.getMembers()) { 454 for (Element element : classElement.getMembers()) {
456 classMembers.add(element); 455 classMembers.add(element);
457 } 456 }
458 457
459 if (Elements.needsImplicitDefaultConstructor(classElement)) { 458 if (Elements.needsImplicitDefaultConstructor(classElement)) {
460 addImplicitDefaultConstructor(x, classElement, classMembers); 459 addImplicitDefaultConstructor(x, classElement, classMembers);
(...skipping 3317 matching lines...) Expand 10 before | Expand all | Expand 10 after
3778 JsBlock blockStatics) { 3777 JsBlock blockStatics) {
3779 GenerateJavascriptVisitor generator = 3778 GenerateJavascriptVisitor generator =
3780 new GenerateJavascriptVisitor(unit, context, translationContext, 3779 new GenerateJavascriptVisitor(unit, context, translationContext,
3781 optStrategy, typeProvider, generateClosureCompatibleCode); 3780 optStrategy, typeProvider, generateClosureCompatibleCode);
3782 // Generate the Javascript AST. 3781 // Generate the Javascript AST.
3783 node.accept(generator); 3782 node.accept(generator);
3784 // Set aside the static initializations 3783 // Set aside the static initializations
3785 generator.addStaticInitsToBlock(blockStatics); 3784 generator.addStaticInitsToBlock(blockStatics);
3786 } 3785 }
3787 } 3786 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698