logoalt Hacker News

asibahitoday at 11:55 AM1 replyview on HN

This `dup` seems entirely useless it actually supports the case for omitting it fron the instruction set.


Replies

layer8today at 12:37 PM

The only reason it is useless in this (arguably ill-chosen) example is because the result of “new Object()” is not used (hence the pop), which is an uncommon case. If test() instead returned the new object, or would use it in some other way after the initialization, then the dup would be needed. Invokespecial consumes the object reference on the stack, hence if you want to use it after invokespecial, you have to copy or duplicate it before.