642929b2a3
Per https://tc39.github.io/ecma402/#sec-canonicalizelanguagetag 6.2.3 CanonicalizeLanguageTag ( locale ) The CanonicalizeLanguageTag abstract operation returns the canonical and case-regularized form of the locale argument (which must be a String value that is a structurally valid Unicode BCP 47 Locale Identifier as verified by the IsStructurallyValidLanguageTag abstract operation). A conforming implementation shall take the steps specified in the “BCP 47 Language Tag to Unicode BCP 47 Locale Identifier” algorithm, from Unicode Technical Standard #35 LDML § 3.3.1 BCP 47 Language Tag Conversion. And http://unicode.org/reports/tr35/#BCP_47_Language_Tag_Conversion " 2. If the BCP 47 primary language subtag matches the type attribute of a languageAlias element in Supplemental Data, replace the language subtag with the replacement value. If there are additional subtags in the replacement value, add them to the result, but only if there is no corresponding subtag already in the tag. " and https://www.unicode.org/repos/cldr/trunk/common/supplemental/supplementalMetadata.xml ... <languageAlias type="aar" replacement="aa" reason="overlong"/> <!-- [Afar] --> ... <languageAlias type="ces" replacement="cs" reason="overlong"/> <!-- [Czech] --> ... <languageAlias type="heb" replacement="he" reason="overlong"/> <!-- [Hebrew] --> |
||
---|---|---|
docs | ||
harness | ||
implementation-contributed | ||
src | ||
test | ||
tools | ||
website | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.hgignore | ||
.jshintrc | ||
.npmrc | ||
.travis.yml | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
ECMA TR-104.pdf | ||
INTERPRETING.md | ||
LICENSE | ||
README.md | ||
excludelist.xml | ||
features.txt | ||
github-deploy-key.enc | ||
lint.exceptions | ||
make.py | ||
package.json |
README.md
Test262: ECMAScript Test Suite (ECMA TR/104)
Test262 is the implementation conformance test suite for the latest drafts (or most recent published edition) of the following Ecma specifications:
- ECMA-262, ECMAScript Language Specification
- ECMA-402, ECMAScript Internationalization API Specification
- ECMA-404, The JSON Data Interchange Format (pdf)
Test262 itself is described in ECMA TR/104 and is included in ECMA-414 (pdf).
Goals & State of Test262
The goal of Test262 is to provide test material that covers every observable behavior specified in the ECMA-414 Standards Suite. Development of Test262 is an on-going process. As of October 2017, Test262 consisted of over 29272 individual test files covering the majority of the pseudo-code algorithms and grammar productions defined in the ECMA-414 Standards Suite. Each of these files contains one or more distinct test cases. This marks the most comprehensive ECMAScript test suite to date. While test coverage is broad, TC39 does not consider coverage to be complete and as with any software project there exists the possibility of omissions and errors. This project welcomes any contributions to Test262 that help make test coverage of existing features more comprehensive.
ECMAScript feature proposals
As defined in the TC39 Process, Stage 4 Entrance Criteria requires tests for new feature proposals to advance. Tests may be written by proposal champions, implementers, or any interested community member.
A proposal champion is someone that worked on the feature proposal and specification directly.
An implementer is someone that works on implementing the proposal into a JavaScript engine, parser, runtime or embedding.
A community member is you, and we welcome you to contribute! If you're having trouble getting started, or even just want to ask a question, feel free to open an issue.
Contributing to Test262
Guidance for contributing to Test262 can be found in CONTRIBUTING.md.
Authors of contributions from non-Ecma member organizations must sign the Test262 CLA
Running Test262
Guidance for running Test262 and explanations of how a test file is interpreted by a test runner is in INTERPRETING
Test262 Runners & Harnesses
Volunteer-maintained projects that may be used to execute Test262 in various ECMAScript hosts:
- https://github.com/bterlson/test262-harness (platform: Node.js)
- https://github.com/test262-utils/test262-harness-py (platform: Python)
- https://bakkot.github.io/test262-web-runner/ (platform: web)
- https://github.com/Izhido/test262_harness_cpp (platform: C++)