Ticket #307 (new defect)

Opened 2 months ago

MochiKit.Signal.connect uses inconsistent function lookup

Reported by: cederberg@gmail.com Assigned to: somebody
Priority: normal Milestone: MochiKit 1.4
Component: component1 Version:
Severity: normal Keywords:
Cc:

Description

MochiKit.Signal.connect(src, signal, dst, func) uses inconsistent function lookup "dst[func]". For DOM signals, late lookup is used, performing dst[func] whenever a signal is emitted. For other signals, connect() binds the dst[func] function immediately.

I think this behaviour should be consistent.

Here is some code to illustrate the issue:

var obj1 = MochiKit.DOM.DIV();
var obj2 = {};
var dst = {
    handler1: function() { alert("handler1"); },
    handler2: function() { alert("handler2"); }
}

MochiKit.Signal.connect(obj1, "onclick", dst, "handler1");
MochiKit.Signal.connect(obj2, "onclick", dst, "handler1");

dst.handler1 = dst.handler2;

MochiKit.Signal.signal(obj1, "onclick");
MochiKit.Signal.signal(obj2, "onclick");