Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

node debugger cannot stop at delete operator #6405

Closed
tinaho opened this issue Oct 24, 2013 · 3 comments
Closed

node debugger cannot stop at delete operator #6405

tinaho opened this issue Oct 24, 2013 · 3 comments

Comments

@tinaho
Copy link

tinaho commented Oct 24, 2013

I use node v.0.10.13 for testing. Node debugger cannot stop at delete operator. Here is my test script and test steps:
$cat delete.js
debugger;
var exPE = { ex2_prop1 : 23, ex2_prop2 : 13 };
delete exPE.ex2_prop1;
debugger;

$node debug delete.js
< debugger listening on port 5858
connecting... ok
break in delete.js:1
1 debugger;
2
3 var exPE = { ex2_prop1 : 23, ex2_prop2 : 13 };
debug> n
break in delete.js:3
1 debugger;
2
3 var exPE = { ex2_prop1 : 23, ex2_prop2 : 13 };
4
5 delete exPE.ex2_prop1;
debug> n
break in delete.js:7
5 delete exPE.ex2_prop1;
6
7 debugger;
8
9 });
debug> n
break in delete.js:9
7 debugger;
8
9 });
debugger doesn't stop at line 5 delete exPE.ex2_prop1. I tested using d8 and d8 stops at line 5.
$d8 --debugger delete.js
JavaScript debugger enabled
break in anonymous, /home/tinaho/delete.js line 1 column 1
debugger;
^
dbg> n
(running)
break in anonymous, /home/tinaho/delete.js line 3 column 1
var exPE = { ex2_prop1 : 23, ex2_prop2 : 13 };
^
dbg>
(running)
break in anonymous, /home/tinaho/delete.js line 5 column 8
delete exPE.ex2_prop1;
^
dbg> n
(running)
break in anonymous, /home/tinaho/delete.js line 7 column 1
debugger;
^

I expect node debugger should stop at delete operator line. Does anyone has this problem too?

@indutny
Copy link
Member

indutny commented Oct 24, 2013

I can easily reproduce it. Seems like a v8 bug, though. Opening issue on their tracker: https://code.google.com/p/v8/issues/detail?id=2957

@tinaho
Copy link
Author

tinaho commented Oct 24, 2013

When node running debugger, it will enclose the script within a anonymous function. So I wrote a script and enclose delete operator within a function and found that even d8 will skip the delete operator. Here is test script and test steps:
$cat delete_infun.js
function a() {
debugger;
var exPE = { ex2_prop1 : 23, ex2_prop2 : 13 };
delete exPE.ex2_prop1;
debugger;
};
a();

$d8 --debugger delete_infun.js
JavaScript debugger enabled
break in a(), /home/tinaho/delete_infun.js line 2 column 5
debugger;
^
dbg> bt
Frames #0 to #1 of 2
#00 a() /home/tinaho/delete_infun.js line 2 column 5 (position 20)
#1 anonymous /home/tinaho/delete_infun.js line 11 column 1 (position 129)
dbg> n
(running)
break in a(), /home/tinaho/delete_infun.js line 4 column 5
var exPE = { ex2_prop1 : 23, ex2_prop2 : 13 };
^
dbg> n
(running)
break in a(), /home/tinaho/delete_infun.js line 8 column 5
debugger;
^
dbg> n
(running)
break in a() returning undefined, /home/tinaho/delete_infun.js line 9 column 1
};
^

I'll update my finding to v8 issue too.

@bnoordhuis
Copy link
Member

Closing, there's nothing actionable left for us. It's a V8 bug that's been reported upstream. The fix will eventually make its way into node.js.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants