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

Unified Diff: pkg/polymer_expressions/lib/polymer_expressions.dart

Issue 207433002: Changes in polymer-expressions to prepare for codegen in polymer: (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: address John's comments Created 6 years, 9 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: pkg/polymer_expressions/lib/polymer_expressions.dart
diff --git a/pkg/polymer_expressions/lib/polymer_expressions.dart b/pkg/polymer_expressions/lib/polymer_expressions.dart
index 36ea3524adbc8d7acfc4d1e2e8598353872a4eb7..f26c2f3e7e58a91655ac7981b07036be170902de 100644
--- a/pkg/polymer_expressions/lib/polymer_expressions.dart
+++ b/pkg/polymer_expressions/lib/polymer_expressions.dart
@@ -30,7 +30,6 @@ library polymer_expressions;
import 'dart:async';
import 'dart:html';
-import 'package:logging/logging.dart';
import 'package:observe/observe.dart';
import 'package:template_binding/template_binding.dart';
@@ -39,8 +38,6 @@ import 'expression.dart';
import 'parser.dart';
import 'src/globals.dart';
-final Logger _logger = new Logger('polymer_expressions');
-
// TODO(justin): Investigate XSS protection
Object _classAttributeConverter(v) =>
(v is Map) ? v.keys.where((k) => v[k] == true).join(' ') :
@@ -64,7 +61,7 @@ class PolymerExpressions extends BindingDelegate {
* [DEFAULT_GLOBALS] will be used.
*/
PolymerExpressions({Map<String, Object> globals})
- : globals = (globals == null) ?
+ : globals = globals == null ?
new Map<String, Object>.from(DEFAULT_GLOBALS) : globals;
prepareBinding(String path, name, node) {
@@ -118,10 +115,11 @@ class _Binding extends Bindable {
static _oneTime(Expression expr, Scope scope, [converter]) {
try {
return _convertValue(eval(expr, scope), scope, converter);
- } on EvalException catch (e) {
- _logger.warning("Error evaluating expression '$expr': ${e.message}");
- return null;
+ } catch (e, s) {
+ new Completer().completeError(
+ "Error evaluating expression '$expr': $e", s);
}
+ return null;
}
_setValue(v) {
@@ -133,12 +131,8 @@ class _Binding extends Bindable {
if (v is Comprehension) {
// convert the Comprehension into a list of scopes with the loop
// variable added to the scope
- return v.iterable.map((i) {
- var vars = new Map();
- vars[v.identifier] = i;
- Scope childScope = new Scope(parent: scope, variables: vars);
- return childScope;
- }).toList(growable: false);
+ return v.iterable.map((i) => scope.childScope(v.identifier, i))
+ .toList(growable: false);
} else {
return converter == null ? v : converter(v);
}
@@ -152,8 +146,9 @@ class _Binding extends Bindable {
set value(v) {
try {
assign(_expr, v, _scope);
- } on EvalException catch (e) {
- _logger.warning("Error evaluating expression '$_expr': ${e.message}");
+ } catch (e, s) {
+ new Completer().completeError(
+ "Error evaluating expression '$_expr': $e", s);
}
}
@@ -163,14 +158,16 @@ class _Binding extends Bindable {
_callback = callback;
final expr = observe(_expr, _scope);
_expr = expr;
- _sub = expr.onUpdate.listen(_setValue)..onError((e) {
- _logger.warning("Error evaluating expression '$_expr': ${e.message}");
+ _sub = expr.onUpdate.listen(_setValue)..onError((e, s) {
+ new Completer().completeError(
+ "Error evaluating expression '$expr': $e", s);
});
try {
update(expr, _scope);
_value = _convertValue(expr.currentValue, _scope, _converter);
- } on EvalException catch (e) {
- _logger.warning("Error evaluating expression '$_expr': ${e.message}");
+ } catch (e, s) {
+ new Completer().completeError(
+ "Error evaluating expression '$expr': $e", s);
}
return _value;
}

Powered by Google App Engine
This is Rietveld 408576698