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

Unified Diff: lib/src/compiler/code_generator.dart

Issue 2249233002: fix #626, add AMD module format and make it default (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: fix sunflower Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: lib/src/compiler/code_generator.dart
diff --git a/lib/src/compiler/code_generator.dart b/lib/src/compiler/code_generator.dart
index d7567ad260abebecce0c34284790d804364f9cf9..ad0803b378fa147f8c1459dfa0578912a9132945 100644
--- a/lib/src/compiler/code_generator.dart
+++ b/lib/src/compiler/code_generator.dart
@@ -41,7 +41,11 @@ import 'js_metalet.dart' as JS;
import 'js_names.dart' as JS;
import 'js_typeref_codegen.dart' show JsTypeRefCodegen;
import 'module_builder.dart'
- show LegacyModuleBuilder, NodeModuleBuilder, pathToJSIdentifier;
+ show
+ CommonJSModuleBuilder,
+ RequireJSModuleBuilder,
nweiz 2016/08/16 22:14:53 For what it's worth, despite their names, CommonJS
Jennifer Messerly 2016/08/24 22:39:51 yeah, I was kind of going back and forth there, as
+ LegacyModuleBuilder,
+ pathToJSIdentifier;
import 'nullable_type_inference.dart' show NullableTypeInference;
import 'reify_coercions.dart' show CoercionReifier;
import 'side_effect_analysis.dart' show ConstFieldVisitor, isStateless;
@@ -290,8 +294,10 @@ class CodeGenerator extends GeneralizingAstVisitor
switch (options.moduleFormat) {
case ModuleFormat.legacy:
return new LegacyModuleBuilder().build(module);
- case ModuleFormat.node:
- return new NodeModuleBuilder().build(module);
+ case ModuleFormat.commonjs:
+ return new CommonJSModuleBuilder().build(module);
+ case ModuleFormat.requirejs:
+ return new RequireJSModuleBuilder().build(module);
case ModuleFormat.es6:
return module;
}
@@ -1750,6 +1756,7 @@ class CodeGenerator extends GeneralizingAstVisitor
var e = js.call('() => #', o);
return new JS.Property(_propertyName(name), e);
}
+
var sigFields = <JS.Property>[];
if (!tCtors.isEmpty) sigFields.add(build('constructors', tCtors));
if (!tMethods.isEmpty) sigFields.add(build('methods', tMethods));
@@ -3249,8 +3256,12 @@ class CodeGenerator extends GeneralizingAstVisitor
var vars = <JS.MetaLetVariable, JS.Expression>{};
var l = _visit(_bindValue(vars, 'l', target));
jsTarget = new JS.MetaLet(vars, [
- js.call('(#[(#[dart._extensionType]) ? dartx[#] : #])',
- [l, l, memberName, memberName,])
+ js.call('(#[(#[dart._extensionType]) ? dartx[#] : #])', [
+ l,
+ l,
+ memberName,
+ memberName,
+ ])
]);
if (typeArgs != null) jsTarget = new JS.Call(jsTarget, typeArgs);
return new JS.Call(jsTarget, args);
@@ -3788,6 +3799,7 @@ class CodeGenerator extends GeneralizingAstVisitor
var args = _visit(argumentList) as List<JS.Expression>;
return isFactory ? new JS.Call(ctor, args) : new JS.New(ctor, args);
}
+
if (element != null && _isObjectLiteral(element.enclosingElement)) {
return _emitObjectLiteral(argumentList);
}
@@ -4029,6 +4041,7 @@ class CodeGenerator extends GeneralizingAstVisitor
}
return null;
}
+
if (expr is SimpleIdentifier) {
return finishIdentifier(expr);
} else if (expr is PrefixedIdentifier && !expr.isDeferred) {
@@ -4116,6 +4129,7 @@ class CodeGenerator extends GeneralizingAstVisitor
if (value != null) return value.bitLength;
return MAX;
}
+
return bitWidth(expr, 0) < 32;
}
@@ -4906,6 +4920,7 @@ class CodeGenerator extends GeneralizingAstVisitor
var name = js.string(node.components.join('.'), "'");
return js.call('#.new(#)', [_emitType(types.symbolType), name]);
}
+
return _emitConst(emitSymbol);
}
@@ -4934,6 +4949,7 @@ class CodeGenerator extends GeneralizingAstVisitor
}
return list;
}
+
if (isConst) return _cacheConst(emitList);
return emitList();
}
@@ -4972,6 +4988,7 @@ class CodeGenerator extends GeneralizingAstVisitor
}
return js.call('dart.map(#, #)', [mapArguments, types]);
}
+
if (node.constKeyword != null) return _emitConst(emitMap);
return emitMap();
}
@@ -5048,6 +5065,7 @@ class CodeGenerator extends GeneralizingAstVisitor
JS.Expression finish(JS.Expression result) {
return annotate(result, node);
}
+
if (node is PrefixExpression && node.operator.lexeme == '!') {
return finish(js.call('!#', _visitTest(node.operand)));
}
@@ -5059,6 +5077,7 @@ class CodeGenerator extends GeneralizingAstVisitor
return finish(js.call(code,
[_visitTest(node.leftOperand), _visitTest(node.rightOperand)]));
}
+
var op = node.operator.type.lexeme;
if (op == '&&') return shortCircuit('# && #');
if (op == '||') return shortCircuit('# || #');
@@ -5277,7 +5296,9 @@ class CodeGenerator extends GeneralizingAstVisitor
///
/// If the value is null, the entire file is whitelisted.
static Map<String, List<String>> _uncheckedWhitelist = {
- 'dom_renderer.dart': ['moveNodesAfterSibling',],
+ 'dom_renderer.dart': [
+ 'moveNodesAfterSibling',
nweiz 2016/08/16 22:14:53 Nittiest of nits: for consistency, either remove t
Jennifer Messerly 2016/08/24 22:39:51 definitely. Yeah I honestly have no idea what this
+ ],
'template_ref.dart': ['createEmbeddedView'],
'ng_class.dart': ['_applyIterableChanges'],
'ng_for.dart': ['_bulkRemove', '_bulkInsert'],

Powered by Google App Engine
This is Rietveld 408576698