Details
-
Sub-task
-
Resolution: Fixed
-
P4
-
8
-
None
-
b100
-
generic
-
generic
-
Verified
Description
void operator should always evaluate to undefined.
See ECMA 11.4.2 The void Operator
jjs> void +this
>> NaN
>> => undefined instead of NaN
jjs> (function f(){return void +(void 0)})()
>> NaN
>> => undefined instead of NaN
jjs> void function(){}
>> Exception in thread "main" java.lang.AssertionError
>> at jdk.nashorn.internal.codegen.Attr.enterFunctionBody(Attr.java:276)
>> at jdk.nashorn.internal.codegen.Attr.enterBlock(Attr.java:297)
>> ...
See ECMA 11.4.2 The void Operator
jjs> void +this
>> NaN
>> => undefined instead of NaN
jjs> (function f(){return void +(void 0)})()
>> NaN
>> => undefined instead of NaN
jjs> void function(){}
>> Exception in thread "main" java.lang.AssertionError
>> at jdk.nashorn.internal.codegen.Attr.enterFunctionBody(Attr.java:276)
>> at jdk.nashorn.internal.codegen.Attr.enterBlock(Attr.java:297)
>> ...