Page
Library
Module
Module type
Parameter
Class
Class type
Source
This document records confirmed deviations, intentional exclusions, and library-defined behavior that could otherwise be mistaken for missing implementation.
It is downstream of:
There are currently no confirmed runtime mismatches recorded for the public ecma-regex API.
A confirmed mismatch means:
If a future mismatch meets those conditions, it must be recorded here until it is fixed or formally reclassified.
These areas are intentionally outside the ecma-regex OCaml public API:
RegExp.prototype.compile host behavior.These are not matcher deviations. They are JavaScript host/object protocol areas. Where the underlying RegExp behavior is part of the OCaml API, it is tested through explicit functions such as search_index, match_, match_all, split, replace, replace_all, and escape, plus their raw ECMAScript String variants.
These behaviors are public and intentional, but their exact shape is defined by the OCaml API rather than direct ECMA-262 host-object text:
syntax_error = string;result, option, and list return shapes;js_string as an explicit OCaml representation of ECMAScript String values;Library-defined behavior must still be tested. It must not be used to hide a real RegExp semantic mismatch.
The current conformance ledger contains:
non_applicable_rows=248Those rows are non-applicable because they describe JavaScript host/object protocol rather than the explicit OCaml RegExp API. They remain visible in the product-surface evidence and are not silently dropped.
The rule is:
The current negative syntax corpus status is:
negative_syntax_executable_rows=410
negative_syntax_requirement_linked_rows=0
negative_syntax_coverage_credit_rows=0This is not recorded as a runtime mismatch.
It is recorded as uncredited evidence because the rows execute and pass, but they are not yet mapped to exact ECMA-262 requirement rows. They may become credit only after exact mapping or proof that they duplicate already credited syntax evidence.
The current Unicode version is:
UCD 16.0.0Changing the Unicode version can change accepted property names, property value aliases, membership sets, and case-folding behavior. Such a change is not a small documentation update. It requires regenerated runtime tables, regenerated Unicode evidence, and a fresh conformance ledger check.
Add a row to this document when any of the following happens:
Do not add vague backlog items here. A row belongs here only when it is a confirmed mismatch, an intentional exclusion, a library-defined contract, or uncredited evidence with a concrete classification.