From 795a713a8647ef7ad29ee07b1f374c7ff18a8bb2 Mon Sep 17 00:00:00 2001 From: bendtherules Date: Fri, 27 Mar 2026 19:43:07 +0530 Subject: [PATCH] spec - Cleanup body to only keep "spec-container" --- spec-built/multipage/abstract-operations.html | 23 +++---------------- ...-ecmascript-features-for-web-browsers.html | 23 +++---------------- ...incompatibilities-with-prior-editions.html | 23 +++---------------- spec-built/multipage/bibliography.html | 23 +++---------------- spec-built/multipage/colophon.html | 23 +++---------------- spec-built/multipage/conformance.html | 23 +++---------------- .../control-abstraction-objects.html | 23 +++---------------- .../copyright-and-software-license.html | 23 +++---------------- ...15-with-possible-compatibility-impact.html | 23 +++---------------- .../ecmascript-data-types-and-values.html | 23 +++---------------- .../ecmascript-language-expressions.html | 23 +++---------------- ...script-language-functions-and-classes.html | 23 +++---------------- .../ecmascript-language-lexical-grammar.html | 23 +++---------------- ...mascript-language-scripts-and-modules.html | 23 +++---------------- .../ecmascript-language-source-code.html | 23 +++---------------- ...-language-statements-and-declarations.html | 23 +++---------------- .../ecmascript-standard-built-in-objects.html | 23 +++---------------- ...rror-handling-and-language-extensions.html | 23 +++---------------- ...xecutable-code-and-execution-contexts.html | 23 +++---------------- spec-built/multipage/fundamental-objects.html | 23 +++---------------- spec-built/multipage/global-object.html | 23 +++---------------- spec-built/multipage/grammar-summary.html | 23 +++---------------- .../multipage/host-layering-points.html | 23 +++---------------- spec-built/multipage/index.html | 23 +++---------------- spec-built/multipage/indexed-collections.html | 23 +++---------------- spec-built/multipage/keyed-collections.html | 23 +++---------------- spec-built/multipage/managing-memory.html | 23 +++---------------- spec-built/multipage/memory-model.html | 23 +++---------------- .../multipage/normative-references.html | 23 +++---------------- .../multipage/notational-conventions.html | 23 +++---------------- spec-built/multipage/numbers-and-dates.html | 23 +++---------------- ...rdinary-and-exotic-objects-behaviours.html | 23 +++---------------- spec-built/multipage/overview.html | 23 +++---------------- spec-built/multipage/reflection.html | 23 +++---------------- spec-built/multipage/scope.html | 23 +++---------------- .../multipage/strict-mode-of-ecmascript.html | 23 +++---------------- spec-built/multipage/structured-data.html | 23 +++---------------- .../multipage/syntax-directed-operations.html | 23 +++---------------- spec-built/multipage/text-processing.html | 23 +++---------------- strip-spec-container.cjs | 17 ++++++++++++++ 40 files changed, 134 insertions(+), 780 deletions(-) create mode 100644 strip-spec-container.cjs diff --git a/spec-built/multipage/abstract-operations.html b/spec-built/multipage/abstract-operations.html index 12003da..4cc013a 100644 --- a/spec-built/multipage/abstract-operations.html +++ b/spec-built/multipage/abstract-operations.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

7 Abstract Operations

These operations are not a part of the ECMAScript language; they are defined here solely to aid the specification of the semantics of the ECMAScript language. Other, more specialized abstract operations are defined throughout this specification.

@@ -1061,4 +1044,4 @@
  1. Let values be a new empty List.
  2. Repeat,
    1. Let next be ? IteratorStepValue(iteratorRecord).
    2. If next is done, then
      1. Return values.
    3. Append next to values.
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/additional-ecmascript-features-for-web-browsers.html b/spec-built/multipage/additional-ecmascript-features-for-web-browsers.html index e2c727d..2ee52df 100644 --- a/spec-built/multipage/additional-ecmascript-features-for-web-browsers.html +++ b/spec-built/multipage/additional-ecmascript-features-for-web-browsers.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

Annex B (normative) Additional ECMAScript Features for Web Browsers

The ECMAScript language syntax and semantics defined in this annex are required when the ECMAScript host is a web browser. The content of this annex is normative but optional if the ECMAScript host is not a web browser.

Some features defined in this annex are specified in this annex, and some are specified in the main body of this document.

@@ -1248,4 +1231,4 @@ .

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/additions-and-changes-that-introduce-incompatibilities-with-prior-editions.html b/spec-built/multipage/additions-and-changes-that-introduce-incompatibilities-with-prior-editions.html index 1e46242..a3b1a23 100644 --- a/spec-built/multipage/additions-and-changes-that-introduce-incompatibilities-with-prior-editions.html +++ b/spec-built/multipage/additions-and-changes-that-introduce-incompatibilities-with-prior-editions.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

Annex F (informative) Additions and Changes That Introduce Incompatibilities with Prior Editions

6.2.5: In ECMAScript 2015, Function calls are not allowed to return a Reference Record.

7.1.4.1: In ECMAScript 2015, ToNumber applied to a String value now recognizes and converts BinaryIntegerLiteral and OctalIntegerLiteral numeric strings. In previous editions such strings were converted to NaN.

@@ -66,4 +49,4 @@

22.2.6 In ECMAScript 2015, "source", "global", "ignoreCase", and "multiline" are accessor properties defined on the RegExp prototype object. In previous editions they were data properties defined on RegExp instances.

25.4.15: In ECMAScript 2019, Atomics.wake has been renamed to Atomics.notify to prevent confusion with Atomics.wait.

27.1.5.4, 27.6.3.6: In ECMAScript 2019, the number of Jobs enqueued by await was reduced, which could create an observable difference in resolution order between a then() call and an await expression.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/bibliography.html b/spec-built/multipage/bibliography.html index 620f884..63032ef 100644 --- a/spec-built/multipage/bibliography.html +++ b/spec-built/multipage/bibliography.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

Bibliography

  1. @@ -76,4 +59,4 @@ RFC 7231 “Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content”, available at <https://tools.ietf.org/html/rfc7231>
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/colophon.html b/spec-built/multipage/colophon.html index fdbb21e..4219a6f 100644 --- a/spec-built/multipage/colophon.html +++ b/spec-built/multipage/colophon.html @@ -1,28 +1,11 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

Colophon

This specification is authored on GitHub in a plaintext source format called Ecmarkup. Ecmarkup is an HTML and Markdown dialect that provides a framework and toolset for authoring Ecma specifications in plaintext and processing the specification into a full-featured HTML rendering that follows the editorial conventions for this document. Ecmarkup builds on and integrates a number of other formats and technologies including Grammarkdown for defining syntax and Ecmarkdown for authoring algorithm steps. PDF renderings of this specification are produced using a print stylesheet which takes advantage of the CSS Paged Media specification and is converted using PrinceXML.

Prior editions of this specification were authored using Word—the Ecmarkup source text that formed the basis of this edition was produced by converting the ECMAScript 2015 Word document to Ecmarkup using an automated conversion tool.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/conformance.html b/spec-built/multipage/conformance.html index 1137c38..a69db54 100644 --- a/spec-built/multipage/conformance.html +++ b/spec-built/multipage/conformance.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

2 Conformance

A conforming implementation of ECMAScript must provide and support all the types, values, objects, properties, functions, and program syntax and semantics described in this specification.

A conforming implementation of ECMAScript must interpret source text input in conformance with the latest version of the Unicode Standard and ISO/IEC 10646.

@@ -47,4 +30,4 @@

2.3 Example Legacy Normative Optional Clause Heading

Example clause contents.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/control-abstraction-objects.html b/spec-built/multipage/control-abstraction-objects.html index 5752fc5..19c8ec5 100644 --- a/spec-built/multipage/control-abstraction-objects.html +++ b/spec-built/multipage/control-abstraction-objects.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

27 Control Abstraction Objects

@@ -1730,4 +1713,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/copyright-and-software-license.html b/spec-built/multipage/copyright-and-software-license.html index 5e65d71..21b31e8 100644 --- a/spec-built/multipage/copyright-and-software-license.html +++ b/spec-built/multipage/copyright-and-software-license.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

Copyright & Software License

Ecma International

Rue du Rhone 114

@@ -102,4 +85,4 @@

THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ECMA INTERNATIONAL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/corrections-and-clarifications-in-ecmascript-2015-with-possible-compatibility-impact.html b/spec-built/multipage/corrections-and-clarifications-in-ecmascript-2015-with-possible-compatibility-impact.html index c8550fd..231e1b6 100644 --- a/spec-built/multipage/corrections-and-clarifications-in-ecmascript-2015-with-possible-compatibility-impact.html +++ b/spec-built/multipage/corrections-and-clarifications-in-ecmascript-2015-with-possible-compatibility-impact.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

Annex E (informative) Corrections and Clarifications in ECMAScript 2015 with Possible Compatibility Impact

9.1.1.4.14-9.1.1.4.17 Edition 5 and 5.1 used a property existence test to determine whether a global object property corresponding to a new global declaration already existed. ECMAScript 2015 uses an own property existence test. This corresponds to what has been most commonly implemented by web browsers.

10.4.2.1: The 5th Edition moved the capture of the current array length prior to the integer conversion of the array index or new length value. However, the captured length value could become invalid if the conversion process has the side-effect of changing the array length. ECMAScript 2015 specifies that the current array length must be captured after the possible occurrence of such side-effects.

@@ -32,4 +15,4 @@

22.2.4.1, 22.2.6.13.1: Any LineTerminator code points in the value of the "source" property of a RegExp instance must be expressed using an escape sequence. Edition 5.1 only required the escaping of /.

22.2.6.8, 22.2.6.11: In previous editions, the specifications for String.prototype.match and String.prototype.replace was incorrect for cases where the pattern argument was a RegExp value whose global flag is set. The previous specifications stated that for each attempt to match the pattern, if lastIndex did not change, it should be incremented by 1. The correct behaviour is that lastIndex should be incremented by 1 only if the pattern matched the empty String.

23.1.3.30: Previous editions did not specify how a NaN value returned by a comparator was interpreted by Array.prototype.sort. ECMAScript 2015 specifies that such as value is treated as if +0𝔽 was returned from the comparator. ECMAScript 2015 also specifies that ToNumber is applied to the result returned by a comparator. In previous editions, the effect of a comparator result that is not a Number value was implementation-defined. In practice, implementations call ToNumber.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/ecmascript-data-types-and-values.html b/spec-built/multipage/ecmascript-data-types-and-values.html index 51d4571..e6caac4 100644 --- a/spec-built/multipage/ecmascript-data-types-and-values.html +++ b/spec-built/multipage/ecmascript-data-types-and-values.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

6 ECMAScript Data Types and Values

Algorithms within this specification manipulate values each of which has an associated type. The possible value types are exactly those defined in this clause. Types are further classified into ECMAScript language types and specification types.

@@ -2897,4 +2880,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/ecmascript-language-expressions.html b/spec-built/multipage/ecmascript-language-expressions.html index 187c0a0..a24edbc 100644 --- a/spec-built/multipage/ecmascript-language-expressions.html +++ b/spec-built/multipage/ecmascript-language-expressions.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

13 ECMAScript Language: Expressions

@@ -3703,4 +3686,4 @@
-
\ No newline at end of file + \ No newline at end of file diff --git a/spec-built/multipage/ecmascript-language-functions-and-classes.html b/spec-built/multipage/ecmascript-language-functions-and-classes.html index e4bd8a8..48ce59c 100644 --- a/spec-built/multipage/ecmascript-language-functions-and-classes.html +++ b/spec-built/multipage/ecmascript-language-functions-and-classes.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

15 ECMAScript Language: Functions and Classes

Note

Various ECMAScript language elements cause the creation of ECMAScript function objects (10.2). Evaluation of such functions starts with the execution of their [[Call]] internal method (10.2.1).

@@ -4057,4 +4040,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/ecmascript-language-lexical-grammar.html b/spec-built/multipage/ecmascript-language-lexical-grammar.html index 7d2b7c4..19adc56 100644 --- a/spec-built/multipage/ecmascript-language-lexical-grammar.html +++ b/spec-built/multipage/ecmascript-language-lexical-grammar.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

12 ECMAScript Language: Lexical Grammar

The source text of an ECMAScript Script or Module is first converted into a sequence of input elements, which are tokens, line terminators, comments, or white space. The source text is scanned from left to right, repeatedly taking the longest possible sequence of code points as the next input element.

There are several situations where the identification of lexical input elements is sensitive to the syntactic grammar context that is consuming the input elements. This requires multiple goal symbols for the lexical grammar. The InputElementHashbangOrRegExp goal is used at the start of a Script or Module. The InputElementRegExpOrTemplateTail goal is used in syntactic grammar contexts where a RegularExpressionLiteral, a TemplateMiddle, or a TemplateTail is permitted. The InputElementRegExp goal symbol is used in all syntactic grammar contexts where a RegularExpressionLiteral is permitted but neither a TemplateMiddle, nor a TemplateTail is permitted. The InputElementTemplateTail goal is used in all syntactic grammar contexts where a TemplateMiddle or a TemplateTail is permitted but a RegularExpressionLiteral is not permitted. In all other contexts, InputElementDiv is used as the lexical goal symbol.

@@ -3204,4 +3187,4 @@ a + b;
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/ecmascript-language-scripts-and-modules.html b/spec-built/multipage/ecmascript-language-scripts-and-modules.html index fc5043b..b2262de 100644 --- a/spec-built/multipage/ecmascript-language-scripts-and-modules.html +++ b/spec-built/multipage/ecmascript-language-scripts-and-modules.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

16 ECMAScript Language: Scripts and Modules

@@ -3258,4 +3241,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/ecmascript-language-source-code.html b/spec-built/multipage/ecmascript-language-source-code.html index 2410735..7eba3f5 100644 --- a/spec-built/multipage/ecmascript-language-source-code.html +++ b/spec-built/multipage/ecmascript-language-source-code.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

11 ECMAScript Language: Source Text

@@ -162,4 +145,4 @@

An ECMAScript implementation may support the evaluation of function exotic objects whose evaluative behaviour is expressed in some host-defined form of executable code other than ECMAScript source text. Whether a function object is defined within ECMAScript code or is a built-in function is not observable from the perspective of ECMAScript code that calls or is called by such a function object.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/ecmascript-language-statements-and-declarations.html b/spec-built/multipage/ecmascript-language-statements-and-declarations.html index 5342d73..f54be6a 100644 --- a/spec-built/multipage/ecmascript-language-statements-and-declarations.html +++ b/spec-built/multipage/ecmascript-language-statements-and-declarations.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

14 ECMAScript Language: Statements and Declarations

Syntax

@@ -2571,4 +2554,4 @@
  1. If an implementation-defined debugging facility is available and enabled, then
    1. Perform an implementation-defined debugging action.
    2. Return a new implementation-defined Completion Record.
  2. Return empty.
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/ecmascript-standard-built-in-objects.html b/spec-built/multipage/ecmascript-standard-built-in-objects.html index ab0885a..fb2dc4f 100644 --- a/spec-built/multipage/ecmascript-standard-built-in-objects.html +++ b/spec-built/multipage/ecmascript-standard-built-in-objects.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

18 ECMAScript Standard Built-in Objects

There are certain built-in objects available whenever an ECMAScript Script or Module begins execution. One, the global object, is part of the global environment of the executing program. Others are accessible as initial properties of the global object or indirectly as properties of accessible built-in objects.

Unless specified otherwise, a built-in object that is callable as a function is a built-in function object with the characteristics described in 10.3. Unless specified otherwise, the [[Extensible]] internal slot of a built-in object initially has the value true. Every built-in function object has a [[Realm]] internal slot whose value is the Realm Record of the realm for which the object was initially created.

@@ -47,4 +30,4 @@

Unless otherwise specified, the "name" property of a built-in function object has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }.

Every other data property described in clauses 19 through 28 and in Annex B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified.

Every accessor property described in clauses 19 through 28 and in Annex B.2 has the attributes { [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified. If only a get accessor function is described, the set accessor function is the default value, undefined. If only a set accessor is described the get accessor is the default value, undefined.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/error-handling-and-language-extensions.html b/spec-built/multipage/error-handling-and-language-extensions.html index c42da74..2b0d608 100644 --- a/spec-built/multipage/error-handling-and-language-extensions.html +++ b/spec-built/multipage/error-handling-and-language-extensions.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

17 Error Handling and Language Extensions

An implementation must report most errors at the time the relevant ECMAScript language construct is evaluated. An early error is an error that can be detected and reported prior to the evaluation of any construct in the Script containing the error. The presence of an early error prevents the evaluation of the construct. An implementation must report early errors in a Script as part of parsing that Script in ParseScript. Early errors in a Module are reported at the point when the Module would be evaluated and the Module is never initialized. Early errors in eval code are reported at the time eval is called and prevent evaluation of the eval code. All errors that are not early errors are runtime errors.

An implementation must report as an early error any occurrence of a condition that is listed in a “Static Semantics: Early Errors” subclause of this specification.

@@ -76,4 +59,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/executable-code-and-execution-contexts.html b/spec-built/multipage/executable-code-and-execution-contexts.html index 01a27ca..799cf5f 100644 --- a/spec-built/multipage/executable-code-and-execution-contexts.html +++ b/spec-built/multipage/executable-code-and-execution-contexts.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

9 Executable Code and Execution Contexts

@@ -1554,4 +1537,4 @@

A language value without language identity can be manifested without prior reference and is unsuitable for use as a weak reference. A Symbol value produced by Symbol.for, unlike other Symbol values, does not have language identity and is unsuitable for use as a weak reference. Well-known symbols are likely to never be collected, but are nonetheless treated as suitable for use as a weak reference because they are limited in number and therefore manageable by a variety of implementation approaches. However, any value associated to a well-known symbol in a live WeakMap is unlikely to be collected and could “leak” memory resources in implementations.

-
\ No newline at end of file + \ No newline at end of file diff --git a/spec-built/multipage/fundamental-objects.html b/spec-built/multipage/fundamental-objects.html index b03131b..8e879d0 100644 --- a/spec-built/multipage/fundamental-objects.html +++ b/spec-built/multipage/fundamental-objects.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

20 Fundamental Objects

@@ -1134,4 +1117,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/global-object.html b/spec-built/multipage/global-object.html index c503f71..5fa74e4 100644 --- a/spec-built/multipage/global-object.html +++ b/spec-built/multipage/global-object.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

19 The Global Object

The global object:

    @@ -436,4 +419,4 @@

    See 28.1.

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/grammar-summary.html b/spec-built/multipage/grammar-summary.html index a489c14..8ebdb7e 100644 --- a/spec-built/multipage/grammar-summary.html +++ b/spec-built/multipage/grammar-summary.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

Annex A (informative) Grammar Summary

@@ -4482,4 +4465,4 @@ ClassSetReservedPunctuator :: one of & - ! # % , : ; < = > @ ` ~ -
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/host-layering-points.html b/spec-built/multipage/host-layering-points.html index 59dccce..f0b6bfa 100644 --- a/spec-built/multipage/host-layering-points.html +++ b/spec-built/multipage/host-layering-points.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

Annex D (informative) Host Layering Points

See 4.2 for the definition of host.

@@ -74,4 +57,4 @@

D.6 Built-in Objects and Methods

Any built-in objects and methods not defined within this specification, except as restricted in 17.1.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/index.html b/spec-built/multipage/index.html index 8b9dbb3..74c700b 100644 --- a/spec-built/multipage/index.html +++ b/spec-built/multipage/index.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-

Draft ECMA-262 / March 26, 2026

+

Draft ECMA-262 / March 26, 2026

ECMAScript® 2026 Language Specification

@@ -99,4 +82,4 @@ Kevin Gibbons
ECMA-262, Project Editor, 12th through 16th Editions

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/indexed-collections.html b/spec-built/multipage/indexed-collections.html index 8a6663a..6c265f5 100644 --- a/spec-built/multipage/indexed-collections.html +++ b/spec-built/multipage/indexed-collections.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
    -
  • Toggle shortcuts help?
  • -
  • Toggle "can call user code" annotationsu
  • -
  • Navigate to/from multipagem
  • -
  • Jump to search box/
  • -
  • Toggle pinning of the current clausep
  • -
  • Jump to the nth pin1-9
  • -
  • Jump to the 10th pin0
  • -
  • Jump to the most recent link target`
  • -
+

23 Indexed Collections

@@ -1611,4 +1594,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/keyed-collections.html b/spec-built/multipage/keyed-collections.html index b506dd6..9a46720 100644 --- a/spec-built/multipage/keyed-collections.html +++ b/spec-built/multipage/keyed-collections.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
    -
  • Toggle shortcuts help?
  • -
  • Toggle "can call user code" annotationsu
  • -
  • Navigate to/from multipagem
  • -
  • Jump to search box/
  • -
  • Toggle pinning of the current clausep
  • -
  • Jump to the nth pin1-9
  • -
  • Jump to the 10th pin0
  • -
  • Jump to the most recent link target`
  • -
+

24 Keyed Collections

@@ -781,4 +764,4 @@
  1. If key is -0𝔽, return +0𝔽.
  2. Return key.
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/managing-memory.html b/spec-built/multipage/managing-memory.html index 1c7ffb0..d1953e8 100644 --- a/spec-built/multipage/managing-memory.html +++ b/spec-built/multipage/managing-memory.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
    -
  • Toggle shortcuts help?
  • -
  • Toggle "can call user code" annotationsu
  • -
  • Navigate to/from multipagem
  • -
  • Jump to search box/
  • -
  • Toggle pinning of the current clausep
  • -
  • Jump to the nth pin1-9
  • -
  • Jump to the 10th pin0
  • -
  • Jump to the most recent link target`
  • -
+

26 Managing Memory

@@ -230,4 +213,4 @@

FinalizationRegistry instances are ordinary objects that inherit properties from the FinalizationRegistry prototype object. FinalizationRegistry instances also have [[Cells]] and [[CleanupCallback]] internal slots.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/memory-model.html b/spec-built/multipage/memory-model.html index 526f5c0..c2b52aa 100644 --- a/spec-built/multipage/memory-model.html +++ b/spec-built/multipage/memory-model.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
    -
  • Toggle shortcuts help?
  • -
  • Toggle "can call user code" annotationsu
  • -
  • Navigate to/from multipagem
  • -
  • Jump to search box/
  • -
  • Toggle pinning of the current clausep
  • -
  • Jump to the nth pin1-9
  • -
  • Jump to the 10th pin0
  • -
  • Jump to the most recent link target`
  • -
+

29 Memory Model

The memory consistency model, or memory model, specifies the possible orderings of Shared Data Block events, arising via accessing TypedArray instances backed by a SharedArrayBuffer and via methods on the Atomics object. When the program has no data races (defined below), the ordering of events appears as sequentially consistent, i.e., as an interleaving of actions from each agent. When the program has data races, shared memory operations may appear sequentially inconsistent. For example, programs may exhibit causality-violating behaviour and other astonishments. These astonishments arise from compiler transforms and the design of CPUs (e.g., out-of-order execution and speculation). The memory model defines both the precise conditions under which a program exhibits sequentially consistent behaviour as well as the possible values read from data races. To wit, there is no undefined behaviour.

The memory model is defined as relational constraints on Memory events introduced by abstract operations on SharedArrayBuffer or by methods on the Atomics object during an evaluation.

@@ -558,4 +541,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/normative-references.html b/spec-built/multipage/normative-references.html index 3d56f9f..babfc44 100644 --- a/spec-built/multipage/normative-references.html +++ b/spec-built/multipage/normative-references.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

3 Normative References

The following referenced documents are indispensable for the application of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

IEEE 754-2019, IEEE Standard for Floating-Point Arithmetic.

@@ -38,4 +21,4 @@ ECMA-404, The JSON Data Interchange Format.
https://www.ecma-international.org/publications-and-standards/standards/ecma-404/

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/notational-conventions.html b/spec-built/multipage/notational-conventions.html index 81aff9f..5e57651 100644 --- a/spec-built/multipage/notational-conventions.html +++ b/spec-built/multipage/notational-conventions.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

5 Notational Conventions

@@ -736,4 +719,4 @@

Specification identity agrees with language identity for all ECMAScript language values except Symbol values produced by Symbol.for. The ECMAScript language values without specification identity and without language identity are undefined, null, Booleans, Strings, Numbers, and BigInts. The ECMAScript language values with specification identity and language identity are Symbols not produced by Symbol.for and Objects. Symbol values produced by Symbol.for have specification identity, but not language identity.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/numbers-and-dates.html b/spec-built/multipage/numbers-and-dates.html index 6eb21dc..5d53b51 100644 --- a/spec-built/multipage/numbers-and-dates.html +++ b/spec-built/multipage/numbers-and-dates.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

21 Numbers and Dates

@@ -2033,4 +2016,4 @@ THH:mm:ss.sss

Date instances are ordinary objects that inherit properties from the Date prototype object. Date instances also have a [[DateValue]] internal slot. The [[DateValue]] internal slot is the time value represented by this Date.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/ordinary-and-exotic-objects-behaviours.html b/spec-built/multipage/ordinary-and-exotic-objects-behaviours.html index ef02fb7..acd3478 100644 --- a/spec-built/multipage/ordinary-and-exotic-objects-behaviours.html +++ b/spec-built/multipage/ordinary-and-exotic-objects-behaviours.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

10 Ordinary and Exotic Objects Behaviours

@@ -1548,4 +1531,4 @@
  1. If target is not an Object, throw a TypeError exception.
  2. If handler is not an Object, throw a TypeError exception.
  3. Let P be MakeBasicObject[[ProxyHandler]], [[ProxyTarget]] »).
  4. Set P's essential internal methods, except for [[Call]] and [[Construct]], to the definitions specified in 10.5.
  5. If IsCallable(target) is true, then
    1. Set P.[[Call]] as specified in 10.5.12.
    2. If IsConstructor(target) is true, then
      1. Set P.[[Construct]] as specified in 10.5.13.
  6. Set P.[[ProxyTarget]] to target.
  7. Set P.[[ProxyHandler]] to handler.
  8. Return P.
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/overview.html b/spec-built/multipage/overview.html index 1daff81..7eb4bab 100644 --- a/spec-built/multipage/overview.html +++ b/spec-built/multipage/overview.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

4 Overview

This section contains a non-normative overview of the ECMAScript language.

ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects within a host environment. ECMAScript as defined here is not intended to be computationally self-sufficient; indeed, there are no provisions in this specification for input of external data or output of computed results. Instead, it is expected that the computational environment of an ECMAScript program will provide not only the objects and other facilities described in this specification but also certain environment-specific objects, whose description and behaviour are beyond the scope of this specification except to indicate that they may provide certain properties that can be accessed and certain functions that can be called from an ECMAScript program.

@@ -366,4 +349,4 @@

Clauses 18 through 28 define the ECMAScript standard library. They include the definitions of all of the standard objects that are available for use by ECMAScript programs as they execute.

Clause 29 describes the memory consistency model of accesses on SharedArrayBuffer-backed memory and methods of the Atomics object.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/reflection.html b/spec-built/multipage/reflection.html index eb63052..78395db 100644 --- a/spec-built/multipage/reflection.html +++ b/spec-built/multipage/reflection.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

28 Reflection

@@ -171,4 +154,4 @@

This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/scope.html b/spec-built/multipage/scope.html index 4e590f8..efde188 100644 --- a/spec-built/multipage/scope.html +++ b/spec-built/multipage/scope.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

1 Scope

This Standard defines the ECMAScript 2026 general-purpose programming language.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/strict-mode-of-ecmascript.html b/spec-built/multipage/strict-mode-of-ecmascript.html index 187d1c0..83baca6 100644 --- a/spec-built/multipage/strict-mode-of-ecmascript.html +++ b/spec-built/multipage/strict-mode-of-ecmascript.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

Annex C (informative) The Strict Mode of ECMAScript

The strict mode restriction and exceptions

    @@ -89,4 +72,4 @@ An implementation may not extend, beyond that defined in this specification, the meanings within strict functions of properties named "caller" or "arguments" of function instances.
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/structured-data.html b/spec-built/multipage/structured-data.html index 7eb4db7..3b78dec 100644 --- a/spec-built/multipage/structured-data.html +++ b/spec-built/multipage/structured-data.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

25 Structured Data

@@ -1414,4 +1397,4 @@ my_text = JSON.[[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/syntax-directed-operations.html b/spec-built/multipage/syntax-directed-operations.html index 0157986..b05c877 100644 --- a/spec-built/multipage/syntax-directed-operations.html +++ b/spec-built/multipage/syntax-directed-operations.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

8 Syntax-Directed Operations

In addition to those defined in this section, specialized syntax-directed operations are defined throughout this specification.

@@ -5362,4 +5345,4 @@
  1. Return empty.
-
\ No newline at end of file +
\ No newline at end of file diff --git a/spec-built/multipage/text-processing.html b/spec-built/multipage/text-processing.html index 1153711..4987453 100644 --- a/spec-built/multipage/text-processing.html +++ b/spec-built/multipage/text-processing.html @@ -1,27 +1,10 @@ - - ECMAScript® 2026 Language Specification - - - -
-
+

22 Text Processing

@@ -3879,4 +3862,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/strip-spec-container.cjs b/strip-spec-container.cjs new file mode 100644 index 0000000..78f951c --- /dev/null +++ b/strip-spec-container.cjs @@ -0,0 +1,17 @@ +const fs = require("fs"); +const path = require("path"); +const cheerio = require("cheerio"); + +const dir = path.join(__dirname, "spec-built/multipage"); +fs.readdirSync(dir).forEach((file) => { + if (!file.endsWith(".html")) return; + const filePath = path.join(dir, file); + const content = fs.readFileSync(filePath, "utf-8"); + const $ = cheerio.load(content); + const container = $("#spec-container"); + if (container.length) { + $("body").empty().append(container); + fs.writeFileSync(filePath, $.html()); + console.log(`Processed ${file}`); + } +});