Chromium Code Reviews| 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..ae88ace5fc96838db45c4aad24e9b9fc1cab7580 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,8 +61,7 @@ class PolymerExpressions extends BindingDelegate { |
| * [DEFAULT_GLOBALS] will be used. |
| */ |
| PolymerExpressions({Map<String, Object> globals}) |
| - : globals = (globals == null) ? |
| - new Map<String, Object>.from(DEFAULT_GLOBALS) : globals; |
| + : globals = globals == null ? DEFAULT_GLOBALS : globals; |
|
Siggi Cherem (dart-lang)
2014/03/21 01:43:46
I don't copy it here anymore because we now use th
Jennifer Messerly
2014/03/21 20:08:54
Hmmm, the idea here was that users can dynamically
Siggi Cherem (dart-lang)
2014/03/21 21:09:47
Done. Made _PolymerExpressionsWithEventDelegate pu
|
| prepareBinding(String path, name, node) { |
| if (path == null) return null; |
| @@ -118,10 +114,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( |
|
Jennifer Messerly
2014/03/21 20:08:54
nice!
|
| + "Error evaluating expression '$expr': $e", s); |
| } |
| + return null; |
| } |
| _setValue(v) { |
| @@ -133,12 +130,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 +145,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 +157,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; |
| } |