Chromium Code Reviews| 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'], |