Files
Zachary D. Rowitsch 93e0875dee
All checks were successful
ci / fast (linux) (push) Successful in 6m30s
Re-curate Test262 suite: expand to built-ins, add 500 tier-1 tests
Tier-1 (vendored PR gate): 751 → 1,251 tests (884 pass, 71%)
  - Added 500 tests across ASI, expressions, literals, keywords,
    identifiers, line-terminators, future-reserved-words, and more
  - 298 of 500 new tests pass immediately

Tier-2 (full upstream): 4,745 → 15,435 tests (3,230 pass, 21%)
  - scan_test262.py now scans both language/ and built-ins/ by default
  - Promoted 943 newly passing built-in tests (Boolean, Object, Array,
    String, Number, Function, etc.)
  - Skipped 4 flaky property-enumeration-order tests

Also fixed scan script to emit reason field for skip status entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 06:44:07 -05:00

34 lines
1.3 KiB
JavaScript

// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: >
When multiple like-named function declarations exist, the final is assigned
to the new binding.
info: |
[...]
9. Let declaredFunctionNames be a new empty List.
10. For each d in varDeclarations, in reverse list order do
a. If d is neither a VariableDeclaration or a ForBinding, then
i. Assert: d is either a FunctionDeclaration or a
GeneratorDeclaration.
ii. NOTE If there are multiple FunctionDeclarations for the same name,
the last declaration is used.
iii. Let fn be the sole element of the BoundNames of d.
iv. If fn is not an element of declaredFunctionNames, then
1. Let fnDefinable be ? envRec.CanDeclareGlobalFunction(fn).
2. If fnDefinable is false, throw a TypeError exception.
3. Append fn to declaredFunctionNames.
4. Insert d as the first element of functionsToInitialize.
[...]
---*/
$262.evalScript(
'function f() { return 1; }' +
'function f() { return 2; }' +
'function f() { return 3; }'
);
assert.sameValue(f(), 3);