diff --git a/lib/core/scope.dart b/lib/core/scope.dart index 4e4a8e038..8df40a8d1 100644 --- a/lib/core/scope.dart +++ b/lib/core/scope.dart @@ -813,7 +813,7 @@ _operation_remainder(left, right) => left % right; _operation_equals(left, right) => left == right; _operation_not_equals(left, right) => left != right; _operation_less_then(left, right) => left < right; -_operation_greater_then(left, right) => left > right; +_operation_greater_then(left, right) => (left == null || right == null) ? false : left > right; _operation_less_or_equals_then(left, right) => left <= right; _operation_greater_or_equals_then(left, right) => left >= right; _operation_power(left, right) => left ^ right; diff --git a/lib/core_dom/compiler.dart b/lib/core_dom/compiler.dart index 063f31420..501c8218c 100644 --- a/lib/core_dom/compiler.dart +++ b/lib/core_dom/compiler.dart @@ -210,8 +210,8 @@ class Compiler { (value, _) { if (dstPathFn.assign(controller, value) != null) { watch.remove(); - notify(); } + notify(); }); }; break; diff --git a/lib/tools/expression_extractor.dart b/lib/tools/expression_extractor.dart index ae42c07f9..b50b9dfa4 100644 --- a/lib/tools/expression_extractor.dart +++ b/lib/tools/expression_extractor.dart @@ -1,5 +1,6 @@ library angular.tools.html_expression_extractor; +import 'dart:async'; import 'dart:io'; import 'package:angular/tools/html_extractor.dart'; import 'package:angular/tools/source_metadata_extractor.dart'; @@ -13,6 +14,7 @@ import 'package:di/dynamic_injector.dart'; import 'package:angular/core/module.dart'; import 'package:angular/core/parser/parser.dart'; +import 'package:angular/tools/parser_getter_setter/generator.dart'; import 'package:angular/tools/parser_generator/generator.dart'; main(args) { @@ -53,14 +55,19 @@ main(args) { printer.printSrc('// Found ${expressions.length} expressions'); Module module = new Module() ..type(Parser, implementedBy: DynamicParser) - ..type(ParserBackend, implementedBy: DynamicParserBackend) + ..type(ParserBackend, implementedBy: DartGetterSetterGen) ..type(FilterMap, implementedBy: NullFilterMap) ..value(SourcePrinter, printer); Injector injector = new DynamicInjector(modules: [module], allowImplicitInjection: true); - // Run the generator. - injector.get(ParserGenerator).generateParser(htmlExtractor.expressions); + runZoned(() { + // Run the generator. + injector.get(ParserGetterSetter).generateParser(htmlExtractor.expressions); + }, zoneSpecification: new ZoneSpecification(print: (_, __, ___, String line) { + printer.printSrc(line); + })); + // Output footer last. if (footerFile != '') {