Skip to content

Commit e94873a

Browse files
author
Chris K
committed
Simple handler function inspection.
1 parent 6f6e19e commit e94873a

File tree

3 files changed

+55
-52
lines changed

3 files changed

+55
-52
lines changed

src/ecma-debugger/evlistenertooltip/evlistenertemplates.js

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
(function()
22
{
3-
this.ev_listeners = function(listener_list)
3+
this.ev_listeners = function(listener_list, rt_id)
44
{
5-
return ["table", ["tbody", listener_list.map(this._ev_listener, this)]];
5+
return ["dl", listener_list.map(this._ev_listener.bind(this, rt_id)),
6+
"class", "ev-listener"]; // , this), "class", "ev-listener"];
67
};
78

8-
this._ev_listener = function(listener)
9+
this._ev_listener = function(rt_id, listener)
910
{
1011
var EVENT_TYPE = 0;
1112
var ORIGIN = 1;
@@ -33,33 +34,32 @@
3334
*/
3435

3536
var ret = [];
36-
var row =
37-
["tr",
38-
["td",
39-
["h2", listener[EVENT_TYPE], "class", "ev-type"]],
40-
["td", listener[USE_CAPTURE] ? "capturing phase" : "bubbling phase"]];
41-
ret.push(row);
42-
row =
43-
["tr",
44-
["td", listener[ORIGIN] == ORIGIN_EVENT_TARGET ?
45-
"event target handler" :
46-
"attribute handler",
47-
"colspan", "2", "class", "ev-origin"]];
48-
ret.push(row);
37+
ret.push(["dt", listener[EVENT_TYPE], "class", "ev-type"]);
38+
ret.push(["dd", listener[USE_CAPTURE] ? "capturing phase" : "bubbling phase",
39+
"class", "ev-phase"]);
40+
ret.push(["dd", listener[ORIGIN] == ORIGIN_EVENT_TARGET
41+
? "event target handler"
42+
: "attribute handler",
43+
"data-tooltip", "js-inspection",
44+
"data-rt-id", String(rt_id),
45+
"data-obj-id", String(listener[LISTENER_OBJECT_ID]),
46+
"data-class-name", "Function",
47+
"class", "ev-origin"]);
4948
var position = listener[POSITION];
5049
var script_id = position && position[SCRIPT_ID];
5150
var script = window.runtimes.getScript(script_id);
5251
if (script)
5352
{
54-
row =
55-
["tr",
56-
["td", "added:"],
57-
this.ev_script_link(script, position[LINE_NUMBER]),
58-
"handler", "show-log-entry-source",
59-
"data-scriptid", String(script_id),
60-
"data-scriptline", String(position[LINE_NUMBER]),
61-
"class", "ev-added"];
62-
ret.push(row);
53+
ret.push(["dd", "added in ",
54+
this.ev_script_link(script, position[LINE_NUMBER]),
55+
"handler", "show-log-entry-source",
56+
"data-scriptid", String(script_id),
57+
"data-scriptline", String(position[LINE_NUMBER]),
58+
"class", "ev-added"]);
59+
}
60+
else
61+
{
62+
// TODO missing script
6363
}
6464
return ret;
6565
};
@@ -71,24 +71,20 @@
7171
if (script.uri)
7272
{
7373
var is_linked = script.script_type == "linked";
74-
var ret =
75-
["td",
76-
["span", script.filename + ":" + line_number,
77-
"data-tooltip", is_linked && "js-script-select",
78-
"data-tooltip-text", is_linked && script.uri,
79-
"class", "file-line"]];
74+
var ret = ["span", script.filename + ":" + line_number,
75+
"data-tooltip", is_linked && "js-script-select",
76+
"data-tooltip-text", is_linked && script.uri,
77+
"class", "file-line"];
8078
}
8179
else
8280
{
8381
var rt = window.runtimes.getRuntime(script.runtime_id);
8482
if (rt)
8583
{
86-
var ret =
87-
["td",
88-
["span", rt.filename + ":" + line_number,
89-
"data-tooltip", "js-script-select",
90-
"data-tooltip-text", rt.uri,
91-
"class", "file-line"]];
84+
var ret = ["span", rt.filename, // line_number is relative to the inline script
85+
"data-tooltip", "js-script-select",
86+
"data-tooltip-text", rt.uri,
87+
"class", "file-line"];
9288
}
9389
}
9490

src/ecma-debugger/evlistenertooltip/evlistenertooltip.js

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -51,29 +51,19 @@ cls.EvListenerTooltip = function()
5151

5252
var _ontooltipclick = function(event)
5353
{
54-
if (!_cur_ctx)
55-
return;
56-
57-
switch (_cur_ctx.type.type)
58-
{
59-
case cls.PrettyPrinter.ELEMENT:
60-
UI.get_instance().show_view("dom");
61-
dom_data.get_dom(_cur_ctx.rt_id, _cur_ctx.obj_id);
62-
_hide_tooltip();
63-
break;
64-
}
54+
_tooltip.hide();
6555
};
6656

6757
var _ontooltip = function(event, target)
6858
{
69-
7059
_hide_tooltip();
7160
var model = window.dominspections[target.get_ancestor_attr("data-model-id")];
61+
var rt_id = model.getDataRuntimeId();
7262
var node_id = target.get_ancestor_attr("ref-id");
73-
if (model && node_id)
63+
if (model && rt_id && node_id)
7464
{
7565
var listeners = model.get_ev_listeners(node_id);
76-
var tmpl = window.templates.ev_listeners(listeners);
66+
var tmpl = window.templates.ev_listeners(listeners, rt_id);
7767
_tooltip.show(tmpl);
7868
}
7969
};
@@ -86,7 +76,7 @@ cls.EvListenerTooltip = function()
8676
_tooltip.onhide = _hide_tooltip;
8777
//_tooltip.ontooltipenter = _ontooltipenter;
8878
//_tooltip.ontooltipleave = _ontooltipleave;
89-
//_tooltip.ontooltipclick = _ontooltipclick;
79+
_tooltip.ontooltipclick = _ontooltipclick;
9080
};
9181

9282
_init();

src/ecma-debugger/objectinspection.6.0/inspectiontooltip.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,23 @@ cls.JSInspectionTooltip = function()
108108
object: obj,
109109
callback: _handle_ontooltip});
110110
}
111+
else
112+
{
113+
var rt_id = Number(target.get_ancestor_attr("data-rt-id"));
114+
var obj_id = Number(target.get_ancestor_attr("data-obj-id"));
115+
var class_name = target.get_ancestor_attr("data-class-name");
116+
if (rt_id && obj_id && class_name)
117+
{
118+
_cur_object = {rt_id: rt_id, obj_id: obj_id, class_name: class_name};
119+
_pretty_printer.print({target: target,
120+
rt_id: rt_id,
121+
obj_id: obj_id,
122+
class_name: class_name,
123+
object: _cur_object,
124+
callback: _handle_ontooltip});
125+
126+
}
127+
}
111128
};
112129

113130
var _init = function(view)

0 commit comments

Comments
 (0)