| Index: src/polymer-expressions.js |
| diff --git a/src/polymer-expressions.js b/src/polymer-expressions.js |
| index 4ebeb988c5df84b9cdbbac5d314ce49015e5f1d5..b9954016bf782fa95d94330244e3eb247a1c321c 100644 |
| --- a/src/polymer-expressions.js |
| +++ b/src/polymer-expressions.js |
| @@ -543,25 +543,26 @@ |
| var eventType = name.substring(3); |
| eventType = mixedCaseEventTypes[eventType] || eventType; |
| - var resolveReceiver = resolveEventReceiver; |
| - |
| - if (typeof polymerExpressions.resolveEventReceiver == 'function') { |
| - resolveReceiver = function(model, path, node) { |
| - return polymerExpressions.resolveEventReceiver(model, path, node); |
| - }; |
| - } |
| - |
| return function(model, node, oneTime) { |
| - var fn, receiver; |
| - |
| - function handler(e) { |
| - fn = fn || path.getValueFrom(model); |
| - receiver = receiver || resolveReceiver(model, path, node); |
| + var fn, receiver, handler; |
| + if (typeof polymerExpressions.resolveEventHandler == 'function') { |
| + handler = function(e) { |
| + fn = fn || polymerExpressions.resolveEventHandler(model, path, node); |
| + fn(e, e.detail, e.currentTarget); |
| + |
| + if (Platform && typeof Platform.flush == 'function') |
| + Platform.flush(); |
| + }; |
| + } else { |
| + handler = function(e) { |
| + fn = fn || path.getValueFrom(model); |
| + receiver = receiver || resolveEventReceiver(model, path, node); |
| - fn.apply(receiver, [e, e.detail, e.currentTarget]); |
| + fn.apply(receiver, [e, e.detail, e.currentTarget]); |
| - if (Platform && typeof Platform.flush == 'function') |
| - Platform.flush(); |
| + if (Platform && typeof Platform.flush == 'function') |
| + Platform.flush(); |
| + }; |
| } |
| node.addEventListener(eventType, handler); |