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'], |