diff --git a/src/json-text.ts b/src/json-text.ts index af614cd..82273f9 100644 --- a/src/json-text.ts +++ b/src/json-text.ts @@ -31,7 +31,7 @@ const literals = new Map([ const numberSyntax = /-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[Ee][+-]?[0-9]+)?/y const syntaxRefusal: Item = { kind: 'refused' } -// In place of JSON.parse: V8 can read an escaped key as another key it read before (https://issues.chromium.org/issues/521080746). +// Stands in for JSON.parse (https://issues.chromium.org/issues/521080746). export function parseJsonText(text: string): JsonReading { const frames: Frame[] = [] let overflowed = false diff --git a/todo.md b/todo.md index 2f09cda..2e33b7b 100644 --- a/todo.md +++ b/todo.md @@ -36,7 +36,7 @@ | 45 | 0.3.0 | | **Replace `isAdfDocument` with a reader returning `Result`.** | 2 | 3 | 6 | 8 | 1 | 25.2 | | 6 | 0.3.0 | decision | **Specify the HTML dialect.** | 2 | 6 | 7 | 8 | 2, 4 | 24.7 | | 77 | 0.3.0 | decision | **Read the input once into a plain copy, so an accessor property or a throwing Proxy yields `not-an-adf-document` and every call returns a result.** | 4 | 4 | 5 | 9 | 1 | 23.0 | -| 83 | 0.3.0 | defect | **Refuse with a result, never a `RangeError`, a document whose markdown would pass the engine's string limit.** | 3 | 4 | 5 | 8 | 1, 9 | 22.0 | +| 83 | 0.3.0 | defect | **Refuse a document whose markdown would pass the engine's string limit with a result, never a `RangeError`.** | 3 | 4 | 5 | 8 | 1, 9 | 22.0 | | 71 | 0.3.0 | | **Add a README table comparing the package with the other ADF converters, each cell checked against that package's own docs or behaviour.** | 1 | 3 | 6 | 7 | 3 | 21.2 | | 80 | 0.3.0 | | **Name the node's path and the attribute key when `not-an-adf-document` refuses a node inside the document.** | 2 | 3 | 5 | 6 | 1 | 19.2 | | 68 | 0.3.0 | | **Carry a non-text inline node holding `content` or `text`, a block holding `text`, and a leaf block holding `content`.** | 3 | 3 | 4 | 7 | 1 | 18.2 | @@ -170,7 +170,7 @@ left, so a Proxy claiming 2³² elements is refused at once. The chunk asks whet shares the 500-level guard's `unsupported-nesting-depth` or takes another code. Found by the technical-principles audit, 2026-10-04. -### 83. Refuse with a result, never a `RangeError`, a document whose markdown would pass the engine's string limit. +### 83. Refuse a document whose markdown would pass the engine's string limit with a result, never a `RangeError`. The block carry indents its JSON two spaces a level, so one unknown block holding 497 nested arrays around 540,000 numbers, about 1.1 MB as JSON, spells about 540 million characters, past V8's