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

Unified Diff: third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart

Issue 257423008: Update all Angular libs (run update_all.sh). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 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: third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart
diff --git a/third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart b/third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart
index b33244e104b718883af7a773ffb96b65c70f07fd..115989f8627e02901cf524b78d9622aa2a43f033 100644
--- a/third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart
+++ b/third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart
@@ -1,10 +1,10 @@
import 'package:angular/core/parser/parser.dart';
import 'package:angular/utils.dart' show isReservedWord;
-import 'dart:math';
class DartGetterSetterGen extends ParserBackend {
- final Set<String> properties = new Set<String>();
- final Map<String, Set<int>> calls = new Map<String, Set<int>>();
+ final properties = new Set<String>();
+ final calls = new Set<String>();
+ final symbols = new Set<String>();
bool isAssignable(expression) => true;
@@ -13,20 +13,18 @@ class DartGetterSetterGen extends ParserBackend {
properties.add(name);
}
- registerCall(String name, List arguments) {
+ registerCall(String name, CallArguments arguments) {
if (isReservedWord(name)) return;
- Set<int> arities = calls.putIfAbsent(name, () => new Set<int>());
- arities.add(arguments.length);
+ calls.add(name);
+ symbols.addAll(arguments.named.keys);
}
- newAccessScope(String name)
- => registerAccess(name);
- newAccessMember(var object, String name)
- => registerAccess(name);
- newCallScope(String name, List arguments)
- => registerCall(name, arguments);
- newCallMember(var object, String name, List arguments)
- => registerCall(name, arguments);
+ newAccessScope(String name) => registerAccess(name);
+ newAccessMember(var object, String name) => registerAccess(name);
+ newCallScope(String name, CallArguments arguments) =>
+ registerCall(name, arguments);
+ newCallMember(var object, String name, CallArguments arguments) =>
+ registerCall(name, arguments);
}
class ParserGetterSetter {
@@ -34,7 +32,7 @@ class ParserGetterSetter {
final ParserBackend backend;
ParserGetterSetter(this.parser, this.backend);
- generateParser(List<String> exprs) {
+ generateParser(List<String> exprs, StringSink sink) {
exprs.forEach((expr) {
try {
parser(expr);
@@ -44,58 +42,34 @@ class ParserGetterSetter {
});
DartGetterSetterGen backend = this.backend;
- print(generateClosureMap(backend.properties, backend.calls));
+ sink.write(generateClosureMap(backend.properties, backend.calls,
+ backend.symbols));
}
- generateClosureMap(Set<String> properties, Map<String, Set<int>> calls) {
+ generateClosureMap(Set<String> properties,
+ Set<String> calls,
+ Set<String> symbols) {
+ var getters = new Set.from(properties)..addAll(calls);
return '''
-class StaticClosureMap extends ClosureMap {
- Map<String, Getter> _getters = ${generateGetterMap(properties)};
- Map<String, Setter> _setters = ${generateSetterMap(properties)};
- List<Map<String, Function>> _functions = ${generateFunctionMap(calls)};
-
- Getter lookupGetter(String name)
- => _getters[name];
- Setter lookupSetter(String name)
- => _setters[name];
- lookupFunction(String name, int arity)
- => (arity < _functions.length) ? _functions[arity][name] : null;
-}
+StaticClosureMap closureMap = new StaticClosureMap(
+ ${generateGetterMap(getters)},
+ ${generateSetterMap(properties)},
+ ${generateSymbolMap(symbols)});
''';
}
generateGetterMap(Iterable<String> keys) {
- var lines = keys.map((key) => 'r"${key}": (o) => o.$key');
- return '{\n ${lines.join(",\n ")}\n }';
+ var lines = keys.map((key) => ' r"${key}": (o) => o.$key');
+ return '{\n${lines.join(",\n")}\n }';
}
generateSetterMap(Iterable<String> keys) {
- var lines = keys.map((key) => 'r"${key}": (o, v) => o.$key = v');
- return '{\n ${lines.join(",\n ")}\n }';
+ var lines = keys.map((key) => ' r"${key}": (o,v) => o.$key = v');
+ return '{\n${lines.join(",\n")}\n }';
}
- generateFunctionMap(Map<String, Set<int>> calls) {
- Map<int, Set<String>> arities = {};
- calls.forEach((name, callArities) {
- callArities.forEach((arity){
- arities.putIfAbsent(arity, () => new Set<String>()).add(name);
- });
- });
-
- var maxArity = arities.keys.reduce((x, y) => max(x, y));
-
- var maps = new Iterable.generate(maxArity, (arity) {
- var names = arities[arity];
- if (names == null) {
- return '{\n }';
- } else {
- var args = new List.generate(arity, (e) => "a$e").join(',');
- var p = args.isEmpty ? '' : ', $args';
- var lines = names.map((name) => 'r"$name": (o$p) => o.$name($args)');
- return '{\n ${lines.join(",\n ")}\n }';
- }
- });
-
- return '[${maps.join(",")}]';
+ generateSymbolMap(Set<String> symbols) {
+ var lines = symbols.map((key) => ' r"${key}": #$key');
+ return '{\n${lines.join(",\n")}\n }';
}
}
« no previous file with comments | « third_party/pkg/angular/lib/tools/parser_generator/generator.dart ('k') | third_party/pkg/angular/lib/tools/selector.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698