Open
Bug 1339123
Opened 7 years ago
Updated 2 years ago
Hoisted block-level function named "arguments" not initialized with undefined per B.3.3.1
Categories
(Core :: JavaScript Engine, defect, P3)
Core
JavaScript Engine
Tracking
()
NEW
Tracking | Status | |
---|---|---|
firefox54 | --- | affected |
People
(Reporter: anba, Unassigned)
Details
(Keywords: triage-deferred)
Attachments
(1 obsolete file)
Test case: --- (function(a = (print(arguments))) { print(arguments); { function arguments() {} } print(arguments); })(); --- Expected output: [object Arguments] undefined function arguments() {} Actual output: [object Arguments] [object Arguments] function arguments() {} Spec https://tc39.github.io/ecma262/#sec-web-compat-functiondeclarationinstantiation initializes the block functions which apply for B.3.3.1 with |undefined| in step 1.a.ii.2 if their names aren't included in the |instantiatedVarNames| list.
Comment 1•7 years ago
|
||
Recapping some IRC conversation below. Per current spec text of Annex B that uses |parameterList| to test if Annex B behavior should apply, when a function has |argumentsObjectNeede = true|, Annex B behavior would *not* apply to functions named "arguments". However, Waldo says this was an unintended normative change from his editorial PR https://github.com/tc39/ecma262/pull/677 I'll go ahead and fix it according to the ES2015 behavior (anba's test case above). Waldo, could you file an upstream PR?
Flags: needinfo?(jwalden+bmo)
Comment 2•7 years ago
|
||
Turns out our in-tree test was wrong. The bug is that if parameter exprs needed the arguments object and didn't have a formal named 'parameter', we weren't treating var bindings of 'arguments' like regular var bindings.
Attachment #8836916 -
Flags: review?(jwalden+bmo)
Comment 3•7 years ago
|
||
Comment on attachment 8836916 [details] [diff] [review] Fix 'arguments' handling in parameter expressions when there is also a var binding of 'arguments'. I'm not sure what the intended semantics are anymore. Retracting patch.
Attachment #8836916 -
Attachment is obsolete: true
Flags: needinfo?(jwalden+bmo)
Attachment #8836916 -
Flags: review?(jwalden+bmo)
Comment 4•7 years ago
|
||
Filed https://github.com/tc39/ecma262/issues/815
Comment 5•7 years ago
|
||
On test262: test/annexB/language/function-code/block-decl-func-skip-arguments.js
Updated•7 years ago
|
Keywords: triage-deferred
Priority: -- → P3
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•