Skip to content
This repository has been archived by the owner on Mar 13, 2018. It is now read-only.

Commit

Permalink
resolveEventReceiver -> resolveEventHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
rafaelw committed Feb 10, 2014
1 parent 5942321 commit 470cced
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 26 deletions.
33 changes: 17 additions & 16 deletions src/polymer-expressions.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
16 changes: 6 additions & 10 deletions tests/tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -1716,7 +1716,7 @@ suite('PolymerExpressions', function() {
});
});

test('on-* event bindings - resolveEventReceiver', function(done) {
test('on-* event bindings - resolveEventHandler', function(done) {
var div = createTestHtml(
'<template bind>' +
'<template bind="{{ foo as foo}}">' +
Expand All @@ -1726,18 +1726,14 @@ suite('PolymerExpressions', function() {

var delegate = new PolymerExpressions;
var receiver = {};
delegate.resolveEventReceiver = function(model, path, node) {
return receiver;
delegate.resolveEventHandler = function(model, path, node) {
return function() {
callCount++;
}
}

var callCount = 0;

var model = {
handleFoo: function() {
assert.strictEqual(this, receiver);
callCount++;
}
};
var model = {};

recursivelySetTemplateModel(div, model, delegate);

Expand Down

0 comments on commit 470cced

Please sign in to comment.