From 85d65e7cd92272c8cdebb312fa4c401f55c0fdd3 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Sun, 11 Oct 2026 18:10:01 -0400 Subject: [PATCH 1/3] Find the interface dictionary's tags in linear time, as the regex found them scanScXml read each tag of a binary dictionary's interface-dictionary part with /<(\/?)([A-Za-z_][\w.-]*)((?:[^>"]|"[^"]*")*?)(\/?)>/g, which CodeQL reports as js/polynomial-redos (code-scanning alert 2). On a backtracking engine it is quadratic on the wrong bytes, and the bytes are the file's. Measured on this machine: ``, `` or ``. Attribute values are quoted, -// so `[^>"]|"[^"]*"` skips a `>` inside a value rather than ending the tag on it. -const TAG_RE = /<(\/?)([A-Za-z_][\w.-]*)((?:[^>"]|"[^"]*")*?)(\/?)>/g; +const SLASH = 0x2f; +// `[A-Za-z_]` +const isNameStart = (c) => (c >= 0x41 && c <= 0x5a) || (c >= 0x61 && c <= 0x7a) || c === 0x5f; +// `[\w.-]`, where `\w` is ASCII `[A-Za-z0-9_]` (no `u` flag on the old regex). +const isNameChar = (c) => isNameStart(c) || (c >= 0x30 && c <= 0x39) || c === 0x2d || c === 0x2e; +export class XmlTagScanner { + constructor(xml) { + this.xml = xml; + this.pos = 0; + // Next-occurrence caches: `at` is the first `ch` at or after `from` (-1: none). + this.gtFrom = 0; + this.gtAt = -2; + this.qtFrom = 0; + this.qtAt = -2; + // A walk from `deadFrom` found no terminator. Every later start an EVEN number of + // quotes past it is on that same walk and fails too; `parityAt` / `parityOdd` count + // the quotes in [deadFrom, parityAt), and `parityNext` is the first quote at or after + // `parityAt` (-2: not looked for yet). + this.deadFrom = -1; + this.parityAt = 0; + this.parityOdd = false; + this.parityNext = -2; + } + next() { + const xml = this.xml; + for (;;) { + const index = xml.indexOf('<', this.pos); + if (index < 0) { + return null; + } + this.pos = index + 1; + let nameStart = index + 1; + const closing = xml.charCodeAt(nameStart) === SLASH; + if (closing) { + nameStart++; + } + // charCodeAt past the end is NaN, which is neither. + if (!isNameStart(xml.charCodeAt(nameStart))) { + continue; + } + let nameEnd = nameStart + 1; + while (isNameChar(xml.charCodeAt(nameEnd))) { + nameEnd++; + } + const gt = this.terminator(nameEnd); + if (gt < 0) { + continue; + } + // Never the name's own last character, which is not a `/`. + const selfClosing = xml.charCodeAt(gt - 1) === SLASH; + this.pos = gt + 1; + return { + index, + end: gt + 1, + closing, + name: xml.slice(nameStart, nameEnd), + attrs: xml.slice(nameEnd, selfClosing ? gt - 1 : gt), + selfClosing, + }; + } + } + // The `>` that ends a tag whose attributes start at `start`, or -1 for none. + // + // There are only two walks through the rest of the input, the one that treats the + // next `"` as opening a value and the one that treats it as closing one, and every + // start lies on one of them. Once one has failed, a start on it is answered by + // parity alone, so the retries the regex made at each later `<` cost a quote count + // instead of a walk to the end. The other walk needs no memory of its own: every `>` + // past `deadFrom` is one the dead walk skipped as quoted, so the other walk takes the + // first one it reaches, and fails only where none is left, which the cached `nextGt` + // then answers for every later start at once. + terminator(start) { + if (this.deadFrom >= 0) { + return this.oddSinceDead(start) ? this.walk(start) : -1; + } + const gt = this.walk(start); + if (gt < 0) { + this.deadFrom = start; + this.parityAt = start; + } + return gt; + } + walk(start) { + let at = start; + for (;;) { + const gt = this.nextGt(at); + if (gt < 0) { + return -1; + } + const open = this.nextQuote(at); + if (open < 0 || gt < open) { + return gt; + } + const close = this.nextQuote(open + 1); + if (close < 0) { + return -1; + } + at = close + 1; + } + } + // Whether an odd number of quotes lies in [deadFrom, at). Starts arrive in + // ascending order, so the count only ever moves forward. + oddSinceDead(at) { + for (;;) { + if (this.parityNext === -2) { + this.parityNext = this.xml.indexOf('"', this.parityAt); + } + if (this.parityNext < 0 || this.parityNext >= at) { + break; + } + this.parityOdd = !this.parityOdd; + this.parityAt = this.parityNext + 1; + this.parityNext = -2; + } + this.parityAt = at; + return this.parityOdd; + } + nextGt(at) { + if (this.gtAt === -2 || at < this.gtFrom || (this.gtAt >= 0 && at > this.gtAt)) { + this.gtFrom = at; + this.gtAt = this.xml.indexOf('>', at); + } + return this.gtAt; + } + nextQuote(at) { + if (this.qtAt === -2 || at < this.qtFrom || (this.qtAt >= 0 && at > this.qtAt)) { + this.qtFrom = at; + this.qtAt = this.xml.indexOf('"', at); + } + return this.qtAt; + } +} const attrOf = (attrs, name) => { const m = new RegExp(`${name}="([^"]*)"`).exec(attrs); return m ? m[1] : ''; @@ -146,10 +275,10 @@ const attrOf = (attrs, name) => { export function scanScXml(xml) { const defs = []; const stack = []; - TAG_RE.lastIndex = 0; + const tags = new XmlTagScanner(xml); let tag; - while ((tag = TAG_RE.exec(xml))) { - const [whole, closing, name, attrs, selfClosing] = tag; + while ((tag = tags.next())) { + const { closing, name, attrs, selfClosing } = tag; if (selfClosing) { // An empty element carries no name text, so it can only be a descriptor // with nothing in it — nothing to record either way. @@ -160,7 +289,7 @@ export function scanScXml(xml) { tag: name, type: attrOf(attrs, 'type'), descriptorSites: [], - textStart: tag.index + whole.length, + textStart: tag.end, }); continue; } diff --git a/dist/datamodel/parser/ScCatalog.js.map b/dist/datamodel/parser/ScCatalog.js.map index 7c4f2e39..17e6bc2c 100644 --- a/dist/datamodel/parser/ScCatalog.js.map +++ b/dist/datamodel/parser/ScCatalog.js.map @@ -1 +1 @@ -{"version":3,"file":"ScCatalog.js","sourceRoot":"","sources":["../../../src/datamodel/parser/ScCatalog.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ScCatalog.js","sourceRoot":"","sources":["../../../src/datamodel/parser/ScCatalog.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/datamodel/parser/ScCatalog.ts b/src/datamodel/parser/ScCatalog.ts index 4771deab..f87e927d 100644 --- a/src/datamodel/parser/ScCatalog.ts +++ b/src/datamodel/parser/ScCatalog.ts @@ -178,8 +178,186 @@ export function catalogFromDefinitions(defs: ScDefinition[]): SystemComposerCata } // A tag: ``, `` or ``. Attribute values are quoted, -// so `[^>"]|"[^"]*"` skips a `>` inside a value rather than ending the tag on it. -const TAG_RE = /<(\/?)([A-Za-z_][\w.-]*)((?:[^>"]|"[^"]*")*?)(\/?)>/g; +// so a `>` inside a value does not end the tag. +// +// This was the regex `/<(\/?)([A-Za-z_][\w.-]*)((?:[^>"]|"[^"]*")*?)(\/?)>/g`, and +// `XmlTagScanner` below returns EXACTLY the match sequence it returned on any input it +// finished on, well-formed or not — tag index, end, the four groups. It was replaced +// because a backtracking engine runs it in quadratic time on the wrong bytes, and the +// bytes are whatever is in the file: +// +// - `[\w.-]*` and the attribute run both match `-` and `.`, so after ``, every split of the run between name and attributes is +// tried, each to the end of the input; +// - an attempt that fails at one `<` is retried at every later `<`, and each retry +// walks to the end again (`` preceded by an EVEN number of `"` (a `"` opens a +// value that only the next `"` closes), with `/` taken as `selfClosing` when it sits +// right before that `>`. A shorter name never helps, because the name characters it +// gives back are plain attribute characters that lead to the same walk. The scanner +// computes that directly, with forward `indexOf`s, and remembers a failed walk so the +// retry at each later `<` costs nothing: see `terminator`. +// +// Exported for test/scCatalog.test.ts, which holds it to the regex tag for tag; it is not +// in the barrel. +export interface XmlTag { + index: number; + end: number; + closing: boolean; + name: string; + attrs: string; + selfClosing: boolean; +} + +const SLASH = 0x2f; + +// `[A-Za-z_]` +const isNameStart = (c: number): boolean => + (c >= 0x41 && c <= 0x5a) || (c >= 0x61 && c <= 0x7a) || c === 0x5f; + +// `[\w.-]`, where `\w` is ASCII `[A-Za-z0-9_]` (no `u` flag on the old regex). +const isNameChar = (c: number): boolean => + isNameStart(c) || (c >= 0x30 && c <= 0x39) || c === 0x2d || c === 0x2e; + +export class XmlTagScanner { + private pos = 0; + // Next-occurrence caches: `at` is the first `ch` at or after `from` (-1: none). + private gtFrom = 0; + private gtAt = -2; + private qtFrom = 0; + private qtAt = -2; + // A walk from `deadFrom` found no terminator. Every later start an EVEN number of + // quotes past it is on that same walk and fails too; `parityAt` / `parityOdd` count + // the quotes in [deadFrom, parityAt), and `parityNext` is the first quote at or after + // `parityAt` (-2: not looked for yet). + private deadFrom = -1; + private parityAt = 0; + private parityOdd = false; + private parityNext = -2; + + constructor(private readonly xml: string) {} + + next(): XmlTag | null { + const xml = this.xml; + for (;;) { + const index = xml.indexOf('<', this.pos); + if (index < 0) { + return null; + } + this.pos = index + 1; + let nameStart = index + 1; + const closing = xml.charCodeAt(nameStart) === SLASH; + if (closing) { + nameStart++; + } + // charCodeAt past the end is NaN, which is neither. + if (!isNameStart(xml.charCodeAt(nameStart))) { + continue; + } + let nameEnd = nameStart + 1; + while (isNameChar(xml.charCodeAt(nameEnd))) { + nameEnd++; + } + const gt = this.terminator(nameEnd); + if (gt < 0) { + continue; + } + // Never the name's own last character, which is not a `/`. + const selfClosing = xml.charCodeAt(gt - 1) === SLASH; + this.pos = gt + 1; + return { + index, + end: gt + 1, + closing, + name: xml.slice(nameStart, nameEnd), + attrs: xml.slice(nameEnd, selfClosing ? gt - 1 : gt), + selfClosing, + }; + } + } + + // The `>` that ends a tag whose attributes start at `start`, or -1 for none. + // + // There are only two walks through the rest of the input, the one that treats the + // next `"` as opening a value and the one that treats it as closing one, and every + // start lies on one of them. Once one has failed, a start on it is answered by + // parity alone, so the retries the regex made at each later `<` cost a quote count + // instead of a walk to the end. The other walk needs no memory of its own: every `>` + // past `deadFrom` is one the dead walk skipped as quoted, so the other walk takes the + // first one it reaches, and fails only where none is left, which the cached `nextGt` + // then answers for every later start at once. + private terminator(start: number): number { + if (this.deadFrom >= 0) { + return this.oddSinceDead(start) ? this.walk(start) : -1; + } + const gt = this.walk(start); + if (gt < 0) { + this.deadFrom = start; + this.parityAt = start; + } + return gt; + } + + private walk(start: number): number { + let at = start; + for (;;) { + const gt = this.nextGt(at); + if (gt < 0) { + return -1; + } + const open = this.nextQuote(at); + if (open < 0 || gt < open) { + return gt; + } + const close = this.nextQuote(open + 1); + if (close < 0) { + return -1; + } + at = close + 1; + } + } + + // Whether an odd number of quotes lies in [deadFrom, at). Starts arrive in + // ascending order, so the count only ever moves forward. + private oddSinceDead(at: number): boolean { + for (;;) { + if (this.parityNext === -2) { + this.parityNext = this.xml.indexOf('"', this.parityAt); + } + if (this.parityNext < 0 || this.parityNext >= at) { + break; + } + this.parityOdd = !this.parityOdd; + this.parityAt = this.parityNext + 1; + this.parityNext = -2; + } + this.parityAt = at; + return this.parityOdd; + } + + private nextGt(at: number): number { + if (this.gtAt === -2 || at < this.gtFrom || (this.gtAt >= 0 && at > this.gtAt)) { + this.gtFrom = at; + this.gtAt = this.xml.indexOf('>', at); + } + return this.gtAt; + } + + private nextQuote(at: number): number { + if (this.qtAt === -2 || at < this.qtFrom || (this.qtAt >= 0 && at > this.qtAt)) { + this.qtFrom = at; + this.qtAt = this.xml.indexOf('"', at); + } + return this.qtAt; + } +} const attrOf = (attrs: string, name: string): string => { const m = new RegExp(`${name}="([^"]*)"`).exec(attrs); @@ -211,11 +389,11 @@ interface XmlFrame { export function scanScXml(xml: string): ScDefinition[] { const defs: ScDefinition[] = []; const stack: XmlFrame[] = []; - TAG_RE.lastIndex = 0; - let tag: RegExpExecArray | null; + const tags = new XmlTagScanner(xml); + let tag: XmlTag | null; - while ((tag = TAG_RE.exec(xml))) { - const [whole, closing, name, attrs, selfClosing] = tag; + while ((tag = tags.next())) { + const { closing, name, attrs, selfClosing } = tag; if (selfClosing) { // An empty element carries no name text, so it can only be a descriptor // with nothing in it — nothing to record either way. @@ -226,7 +404,7 @@ export function scanScXml(xml: string): ScDefinition[] { tag: name, type: attrOf(attrs, 'type'), descriptorSites: [], - textStart: tag.index + whole.length, + textStart: tag.end, }); continue; } diff --git a/test/scCatalog.test.ts b/test/scCatalog.test.ts index 9d4cf8bd..8c4b9a12 100644 --- a/test/scCatalog.test.ts +++ b/test/scCatalog.test.ts @@ -25,6 +25,7 @@ import { readFileSync } from 'node:fs'; import { fileURLToPath } from 'node:url'; import { unzipSync, zipSync } from 'fflate'; import type { ParseWarning } from '../src/datamodel/parser/ParseWarning.js'; +import { XmlTagScanner } from '../src/datamodel/parser/ScCatalog.js'; // Through the barrel: it is what registers the node classes the entry parser // resolves values with. import { @@ -542,3 +543,88 @@ describe('a definition named after an Object.prototype member', () => { } }); }); + +describe('the XML catalog scan, on bytes that are not a well-formed catalog', () => { + // The regex `XmlTagScanner` replaced, kept here as the specification it is held to. + // It is quadratic on a backtracking engine (CodeQL js/polynomial-redos), which is why + // it is not the implementation; every input below is small enough for it to finish. + const TAG_RE = /<(\/?)([A-Za-z_][\w.-]*)((?:[^>"]|"[^"]*")*?)(\/?)>/g; + type Row = [number, number, boolean, string, string, boolean]; + const viaRegex = (s: string): Row[] => { + const out: Row[] = []; + TAG_RE.lastIndex = 0; + let m: RegExpExecArray | null; + while ((m = TAG_RE.exec(s))) { + out.push([m.index, m.index + m[0].length, !!m[1], m[2], m[3], !!m[4]]); + } + return out; + }; + const viaScanner = (s: string): Row[] => { + const out: Row[] = []; + const tags = new XmlTagScanner(s); + let t: ReturnType; + while ((t = tags.next())) { + out.push([t.index, t.end, t.closing, t.name, t.attrs, t.selfClosing]); + } + return out; + }; + + it('returns the tags the regex returned, on the real catalog', () => { + const xml = new TextDecoder().decode( + unzipSync(new Uint8Array(readFileSync(fixture('arch_binary.sldd'))))[SC_PART_XML], + ); + expect(viaScanner(xml)).toEqual(viaRegex(xml)); + }); + + // Random strings over the characters the regex gives meaning to, seeded so a failure + // reproduces. 8,182 of the 20,000 hold an attribute walk that fails, and 2,968 a tag + // after one: the path the scanner answers from memory rather than by walking. + it('returns the tags the regex returned, on random input', () => { + let seed = 1; + const rand = (n: number): number => { + seed = (seed * 1103515245 + 12345) & 0x7fffffff; + return seed % n; + }; + const pieces = ['', '"', '/', ' ', '-', '.', '', '', '', 'x', '<', ':', '!']; + for (let k = 0; k < 20000; k++) { + let s = ''; + for (let i = 1 + rand(30); i > 0; i--) { + s += pieces[rand(pieces.length)]; + } + expect(viaScanner(s), JSON.stringify(s)).toEqual(viaRegex(s)); + } + }); + + // The two shapes CodeQL reports, then two retry-at-every-`<` shapes: with no `>` at all, + // and with every `>` behind an odd number of quotes. On the regex the first four took + // 11.4 s, 48.3 s, 22.9 s and 6.8 s at 100,000, 100,000, 100,000 and 30,000 repetitions, + // growing as the square; they deflate about 1000:1, so a dictionary of a few KB carried + // them. The last is linear on the regex and is here for the scanner: a quote search that + // is not remembered between tags runs to the one quote at the end from every tag. + // + // The scanner's slowest of the five is the last, 83 ms here over two full runs, so the + // bound is 2 s: five times CI's time, at 3.3 times this machine's (fe238c7). + it('stays linear on the inputs that made the regex quadratic', () => { + for (const s of [ + '"'.repeat(200_000), + ''.repeat(200_000) + '"', + ]) { + const t0 = performance.now(); + expect(scanScXml(s)).toEqual([]); + expect(performance.now() - t0).toBeLessThan(2000); + } + }); + + // One stray quote in a long part made the regex's attribute walk run to the end of the + // input, and past ~8.39M steps V8 throws: the whole dictionary failed to open. + it('reads past a stray quote ahead of a long attribute value instead of throwing', () => { + const xml = + 'x' + + `` + + 'Bus1'; + expect(scanScXml(xml).map((d) => [d.name, d.type])).toEqual([['Bus1', 'T']]); + }); +}); From bebec605536f8f6a8718b12a67d68957022ce942 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Sun, 11 Oct 2026 19:10:16 -0400 Subject: [PATCH 2/3] Read a decimal's digits one way, so text that is no number is refused in linear time Five patterns read a decimal as `\d+\.?\d*`. With no dot that is `\d+\d*`, and a backtracking engine tries every split of a run of digits between the two before it gives up, so text that is not a number cost the square of its length, and the cube in a pattern that holds two decimals. A sweep for the shape after code-scanning alert 2 found them; CodeQL does not report them. Measured on this machine: - XmlUtils.parseComplexNum (COMPLEX_PART, two in each element) reads a text dictionary's own non-finite complex text on open (MatlabVariableNode._isOwnNonFiniteText), and a complex value's text in the Property Inspector (piOther.formatCdata). 5,000 digits, `+`, 5,000 more and an `x` took 55 s, and a 5,439 B text dictionary holding half as many took 6.9 s to open. - SlxParser's NUMERIC_RE judges every block

value of a model (valueReferencesData). 100,000 digits and an `x` took 19.6 s, and so did opening a 744 B .slx that holds them. - MatlabValueParser's parseMatlabNumber and parseComplex read what is typed into a cell: 5.6 s for 100,000 digits and an `x`, 6.9 s for 2,500, `+`, 2,500 more and an `x`. `\d+(?:\.\d*)?` matches the same strings and leaves every group where it was, and its digits split only one way. The same inputs take 0.1 to 0.5 ms, and a million digits 1 to 4 ms. The old and new pattern at each site agree on test() and on every exec() group for all 4,581,298,449 strings of up to eight characters over `019.eE+-iInfNax` and the space, and for 5,229,043 strings of up to six tokens from those and `Inf`, `NaN` and `Infinity`. Opening the 447 .sldd, .slx, .mdl and .mat files of test/fixtures, test/parity/artifacts and the local corpus through the built package, and building the Property Inspector object of each of their 3,288,107 nodes, applies NUMERIC_RE to 129,486 distinct strings and parseComplexNum's pattern to 9. Opening a file never reaches MatlabValueParser. Old and new agree on all of them, on all 129,584 distinct strings that run saw put through every pattern, and on the 1,676,663 distinct string leaves and whitespace tokens of the 222 dictionaries' content as read. (11 of the 447 do not open, for reasons outside this change: ten v7.3 MAT-files, and a text dictionary past V8's longest string.) Each new test fails with its old pattern put back alone, at 1.1 to 7.7 s against bounds of 100 ms and 1 s, and passes with the new. Each bound is past five times its case's CI time; the slowest case is 11 ms here over two full runs (blockParamUsages), at 3.3 times this machine's (fe238c7). --- .../parser/MatlabValueParser.d.ts.map | 2 +- dist/datamodel/parser/MatlabValueParser.js | 11 +++--- .../datamodel/parser/MatlabValueParser.js.map | 2 +- dist/datamodel/parser/SlxParser.d.ts.map | 2 +- dist/datamodel/parser/SlxParser.js | 5 ++- dist/datamodel/parser/SlxParser.js.map | 2 +- dist/datamodel/parser/XmlUtils.d.ts.map | 2 +- dist/datamodel/parser/XmlUtils.js | 8 ++++- dist/datamodel/parser/XmlUtils.js.map | 2 +- src/datamodel/parser/MatlabValueParser.ts | 11 +++--- src/datamodel/parser/SlxParser.ts | 5 ++- src/datamodel/parser/XmlUtils.ts | 8 ++++- test/blockParamUsages.test.ts | 14 ++++++++ test/matlabValueParser.test.ts | 25 ++++++++++++++ test/matlabVariableNode.test.ts | 14 ++++++++ test/piOther.test.ts | 13 +++++++ test/xmlUtils.test.ts | 34 +++++++++++++++++++ 17 files changed, 142 insertions(+), 18 deletions(-) diff --git a/dist/datamodel/parser/MatlabValueParser.d.ts.map b/dist/datamodel/parser/MatlabValueParser.d.ts.map index ee551f41..982b62d8 100644 --- a/dist/datamodel/parser/MatlabValueParser.d.ts.map +++ b/dist/datamodel/parser/MatlabValueParser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"MatlabValueParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/MatlabValueParser.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iBAAS,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAmB9C;AA+BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAS9D;AAkDD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AASD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOtD;AA6BD,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAkGnD;AAsFD,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAgClD;AAwQD,iBAAS,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAWlE;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC;;;;;;;;;;AACjC,wBAQE"} \ No newline at end of file +{"version":3,"file":"MatlabValueParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/MatlabValueParser.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iBAAS,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAmB9C;AAkCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAS9D;AAkDD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AASD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOtD;AA6BD,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAkGnD;AAsFD,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAgClD;AAwQD,iBAAS,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAWlE;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC;;;;;;;;;;AACjC,wBAQE"} \ No newline at end of file diff --git a/dist/datamodel/parser/MatlabValueParser.js b/dist/datamodel/parser/MatlabValueParser.js index 2288e385..3e33157c 100644 --- a/dist/datamodel/parser/MatlabValueParser.js +++ b/dist/datamodel/parser/MatlabValueParser.js @@ -57,8 +57,11 @@ function parseMatlabNumber(str) { } return nonFinite[1] === '-' ? -Infinity : Infinity; } - // Decimal integer/real with optional exponent — no hex, no separators. - if (!/^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/.test(str)) { + // Decimal integer/real with optional exponent — no hex, no separators. `\d+(?:\.\d*)?` + // and not `\d+\.?\d*`, which says the same but, with no dot, splits a run of digits + // every way it can before failing: quadratic, 5.6 s for 100,000 digits and an `x`, where + // it is 0.2 ms now. The same in parseComplex, where two of them made it cubic. + if (!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(str)) { return null; } const n = parseExactNum(str); @@ -164,14 +167,14 @@ function parseString(str) { return value === null ? null : { type: 'string', value }; } function parseComplex(str) { - const m = str.match(/^([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)([+-](?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)i$/); + const m = str.match(/^([+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?)([+-](?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?)i$/); if (m) { const re = parseFloat(m[1]); const im = parseFloat(m[2]); const formatted = im >= 0 ? re + '+' + im + 'i' : re + '' + im + 'i'; return { type: 'complex', value: formatted }; } - const mi = str.match(/^([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)i$/); + const mi = str.match(/^([+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?)i$/); if (mi) { const im = parseFloat(mi[1]); const formatted = '0' + (im >= 0 ? '+' + im + 'i' : '' + im + 'i'); diff --git a/dist/datamodel/parser/MatlabValueParser.js.map b/dist/datamodel/parser/MatlabValueParser.js.map index 9a897493..da4326a4 100644 --- a/dist/datamodel/parser/MatlabValueParser.js.map +++ b/dist/datamodel/parser/MatlabValueParser.js.map @@ -1 +1 @@ -{"version":3,"file":"MatlabValueParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/MatlabValueParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MatlabValueParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/MatlabValueParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/parser/SlxParser.d.ts.map b/dist/datamodel/parser/SlxParser.d.ts.map index d72e2ef9..1409c115 100644 --- a/dist/datamodel/parser/SlxParser.d.ts.map +++ b/dist/datamodel/parser/SlxParser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"SlxParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/SlxParser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;OASG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,SAAS,EAAE,WAAW,EAAE,GAAG;QAAE,iBAAiB,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAC/D,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC;;;;OAIG;IACH,KAAK,EAAE,SAAS,EAAE,CAAC;IAInB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAY9C,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AA2ED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CA8B5F;AA8UD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ1D;AA2DD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAI5F;AA8BD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAwLD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAkOhG"} \ No newline at end of file +{"version":3,"file":"SlxParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/SlxParser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;OASG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,SAAS,EAAE,WAAW,EAAE,GAAG;QAAE,iBAAiB,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAC/D,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC;;;;OAIG;IACH,KAAK,EAAE,SAAS,EAAE,CAAC;IAInB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAY9C,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AA2ED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CA8B5F;AAiVD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ1D;AA2DD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAI5F;AA8BD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAwLD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAkOhG"} \ No newline at end of file diff --git a/dist/datamodel/parser/SlxParser.js b/dist/datamodel/parser/SlxParser.js index 86558c66..8e527a39 100644 --- a/dist/datamodel/parser/SlxParser.js +++ b/dist/datamodel/parser/SlxParser.js @@ -354,7 +354,10 @@ function legacyModelReferences(root) { } return out; } -const NUMERIC_RE = /^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/; +// `\d+(?:\.\d*)?` and not `\d+\.?\d*`, the same numbers: with no dot the second is +// `\d+\d*`, which a backtracking engine splits every way it can, so a

value of 100,000 +// digits and an `x` took 20 s, and takes 0.5 ms now. +const NUMERIC_RE = /^-?(\d+(?:\.\d*)?|\.\d+)([eE][+-]?\d+)?$/; // The MATLAB non-finite literals, in any case and with an optional sign. A // Saturation block's `UpperLimit=Inf` is a NUMBER, not a reference to a workspace // variable named Inf. This was a case-SENSITIVE comparison against the three diff --git a/dist/datamodel/parser/SlxParser.js.map b/dist/datamodel/parser/SlxParser.js.map index 04fc2e6b..fd94f65f 100644 --- a/dist/datamodel/parser/SlxParser.js.map +++ b/dist/datamodel/parser/SlxParser.js.map @@ -1 +1 @@ -{"version":3,"file":"SlxParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/SlxParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SlxParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/SlxParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/parser/XmlUtils.d.ts.map b/dist/datamodel/parser/XmlUtils.d.ts.map index ec5eaf1a..5de22ebc 100644 --- a/dist/datamodel/parser/XmlUtils.d.ts.map +++ b/dist/datamodel/parser/XmlUtils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"XmlUtils.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/XmlUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"XmlUtils.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/XmlUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/parser/XmlUtils.js b/dist/datamodel/parser/XmlUtils.js index 5ec9a7d8..79cdf44e 100644 --- a/dist/datamodel/parser/XmlUtils.js +++ b/dist/datamodel/parser/XmlUtils.js @@ -71,7 +71,13 @@ export function formatComplexNum(re, im) { // One part of a complex element: a decimal, `Inf`, or `NaN`, unsigned. `Infinity` too, // because that is what a plain .mat variable's elements say for an infinite part // (MatlabVariableNode._createFromMatNumeric writes String()). -const COMPLEX_PART = '(?:Inf(?:inity)?|NaN|(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?)'; +// +// A decimal is `\d+(?:\.\d*)?`, never `\d+\.?\d*`: the same numbers, but with no dot the +// second is `\d+\d*`, which a backtracking engine splits every way it can before it gives +// up. Twice over in one element that was cubic, and this runs on a file's own text (a text +// dictionary's `_nonFinite` cdata, a binary one's in the Property Inspector): 5,000 digits, +// `+`, 5,000 more and an `x` took 55 s. It takes 0.3 ms now, and a million digits 1.1 ms. +const COMPLEX_PART = '(?:Inf(?:inity)?|NaN|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)'; // A whole element: the real part with an optional sign, then the imaginary part, which // has its own sign — except a NaN, which formatComplexNum and MATLAB's binary writer // both write with none (`1NaNi`). diff --git a/dist/datamodel/parser/XmlUtils.js.map b/dist/datamodel/parser/XmlUtils.js.map index 635d9be8..1890381e 100644 --- a/dist/datamodel/parser/XmlUtils.js.map +++ b/dist/datamodel/parser/XmlUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"XmlUtils.js","sourceRoot":"","sources":["../../../src/datamodel/parser/XmlUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"XmlUtils.js","sourceRoot":"","sources":["../../../src/datamodel/parser/XmlUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/datamodel/parser/MatlabValueParser.ts b/src/datamodel/parser/MatlabValueParser.ts index 0e277cd5..ee9bba4f 100644 --- a/src/datamodel/parser/MatlabValueParser.ts +++ b/src/datamodel/parser/MatlabValueParser.ts @@ -49,8 +49,11 @@ function parseMatlabNumber(str: string): number | string | null { if (nonFinite[2] === 'NaN') { return NaN; } return nonFinite[1] === '-' ? -Infinity : Infinity; } - // Decimal integer/real with optional exponent — no hex, no separators. - if (!/^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/.test(str)) { + // Decimal integer/real with optional exponent — no hex, no separators. `\d+(?:\.\d*)?` + // and not `\d+\.?\d*`, which says the same but, with no dot, splits a run of digits + // every way it can before failing: quadratic, 5.6 s for 100,000 digits and an `x`, where + // it is 0.2 ms now. The same in parseComplex, where two of them made it cubic. + if (!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(str)) { return null; } const n = parseExactNum(str); @@ -166,14 +169,14 @@ function parseString(str: string): ParsedValue | null { } function parseComplex(str: string): ParsedValue | null { - const m = str.match(/^([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)([+-](?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)i$/); + const m = str.match(/^([+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?)([+-](?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?)i$/); if (m) { const re = parseFloat(m[1]); const im = parseFloat(m[2]); const formatted = im >= 0 ? re + '+' + im + 'i' : re + '' + im + 'i'; return { type: 'complex', value: formatted }; } - const mi = str.match(/^([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)i$/); + const mi = str.match(/^([+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?)i$/); if (mi) { const im = parseFloat(mi[1]); const formatted = '0' + (im >= 0 ? '+' + im + 'i' : '' + im + 'i'); diff --git a/src/datamodel/parser/SlxParser.ts b/src/datamodel/parser/SlxParser.ts index 771dd6af..21ad0ead 100644 --- a/src/datamodel/parser/SlxParser.ts +++ b/src/datamodel/parser/SlxParser.ts @@ -473,7 +473,10 @@ function legacyModelReferences(root: unknown): { blockPath: string; modelName: s return out; } -const NUMERIC_RE = /^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/; +// `\d+(?:\.\d*)?` and not `\d+\.?\d*`, the same numbers: with no dot the second is +// `\d+\d*`, which a backtracking engine splits every way it can, so a

value of 100,000 +// digits and an `x` took 20 s, and takes 0.5 ms now. +const NUMERIC_RE = /^-?(\d+(?:\.\d*)?|\.\d+)([eE][+-]?\d+)?$/; // The MATLAB non-finite literals, in any case and with an optional sign. A // Saturation block's `UpperLimit=Inf` is a NUMBER, not a reference to a workspace // variable named Inf. This was a case-SENSITIVE comparison against the three diff --git a/src/datamodel/parser/XmlUtils.ts b/src/datamodel/parser/XmlUtils.ts index 62b38610..7dc6a926 100644 --- a/src/datamodel/parser/XmlUtils.ts +++ b/src/datamodel/parser/XmlUtils.ts @@ -78,7 +78,13 @@ export function formatComplexNum(re: unknown, im: unknown): string { // One part of a complex element: a decimal, `Inf`, or `NaN`, unsigned. `Infinity` too, // because that is what a plain .mat variable's elements say for an infinite part // (MatlabVariableNode._createFromMatNumeric writes String()). -const COMPLEX_PART = '(?:Inf(?:inity)?|NaN|(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?)'; +// +// A decimal is `\d+(?:\.\d*)?`, never `\d+\.?\d*`: the same numbers, but with no dot the +// second is `\d+\d*`, which a backtracking engine splits every way it can before it gives +// up. Twice over in one element that was cubic, and this runs on a file's own text (a text +// dictionary's `_nonFinite` cdata, a binary one's in the Property Inspector): 5,000 digits, +// `+`, 5,000 more and an `x` took 55 s. It takes 0.3 ms now, and a million digits 1.1 ms. +const COMPLEX_PART = '(?:Inf(?:inity)?|NaN|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)'; // A whole element: the real part with an optional sign, then the imaginary part, which // has its own sign — except a NaN, which formatComplexNum and MATLAB's binary writer // both write with none (`1NaNi`). diff --git a/test/blockParamUsages.test.ts b/test/blockParamUsages.test.ts index 1cfb95dd..0e276284 100644 --- a/test/blockParamUsages.test.ts +++ b/test/blockParamUsages.test.ts @@ -61,6 +61,20 @@ describe('block param usage extraction (blocklist + identifier gate)', () => { expect(usages).toEqual([]); }); + // NUMERIC_RE's decimal was `\d+\.?\d*`, which with no dot splits a run of digits every way + // it can before it fails: a

of 50,000 digits and an `x` took 4.9 s, per value. Here it + // takes 11 ms over two full runs, so 1 s is past five times CI's time, at 3.3 times this + // machine's (fe238c7). + it('judges a long run of digits at once, as a number or as an expression', () => { + const digits = '1'.repeat(50_000); + const t0 = performance.now(); + const usages = usagesFor( + `

${digits}x

${digits}

`, + ); + expect(performance.now() - t0).toBeLessThan(1000); + expect(usages.map((u) => [u.paramProperty, u.paramValue.length])).toEqual([['Gain', 50_001]]); + }); + it('drops purely numeric param values (Gain=22.8)', () => { const usages = usagesFor(`

22.8

`); expect(usages).toEqual([]); diff --git a/test/matlabValueParser.test.ts b/test/matlabValueParser.test.ts index f5e0f4bc..63ea4af1 100644 --- a/test/matlabValueParser.test.ts +++ b/test/matlabValueParser.test.ts @@ -88,6 +88,31 @@ describe('MatlabValueParser — complex scalars', () => { it('parses complex parts in scientific notation', () => { expect(parse('1e2+3i')).toEqual({ type: 'complex', value: '100+3i' }); }); + + it('reads a decimal that ends in its dot, or starts with it', () => { + expect(parse('1.')).toEqual({ type: 'double', value: 1 }); + expect(parse('-.5')).toEqual({ type: 'double', value: -0.5 }); + expect(parse('2.e3')).toEqual({ type: 'double', value: 2000 }); + expect(parse('1.+2.i')).toEqual({ type: 'complex', value: '1+2i' }); + expect(parse('3.i')).toEqual({ type: 'complex', value: '0+3i' }); + expect(parse('[1. 2.5 .5]')).toEqual({ type: 'double', value: [1, 2.5, 0.5], dims: [1, 3] }); + expect(parse('1.5.')).toBeNull(); + expect(parse('1..2')).toBeNull(); + }); + + // A decimal was `\d+\.?\d*` in all three patterns parse tries, which with no dot splits a + // run of digits every way it can before it fails, and parseComplex's has two of them: a + // value typed into a cell that was no literal cost the square of its length, or the cube. + // On the old patterns these took 3.9 s and 6.8 s. Here they take 0.4 ms over two full + // runs, so 100 ms is past five times CI's time, at 3.3 times this machine's (fe238c7). + it('refuses a long run of digits that is no literal at once', () => { + const half = '1'.repeat(2500); + for (const text of ['1'.repeat(50_000) + 'x', half + '+' + half + 'x']) { + const t0 = performance.now(); + expect(parse(text)).toBeNull(); + expect(performance.now() - t0).toBeLessThan(100); + } + }); }); describe('MatlabValueParser — numeric arrays', () => { diff --git a/test/matlabVariableNode.test.ts b/test/matlabVariableNode.test.ts index 5c814e42..c1329d08 100644 --- a/test/matlabVariableNode.test.ts +++ b/test/matlabVariableNode.test.ts @@ -447,6 +447,20 @@ describe('MatlabVariableNode — complex values from cdata', () => { expect([n._kind, n._scalarType, n._scalarValue]).toEqual(['scalar', 'complex', '1.5-2i']); }); + // A text dictionary's own non-finite complex text is held to XmlUtils.parseComplexNum, + // whose decimal was `\d+\.?\d*`: on text that is not an element that cost the cube of its + // length, and this value, 5,002 characters, took 7.0 s to read. Here it takes 0.9 ms over + // two full runs, so 1 s is past five times CI's time, at 3.3 times this machine's + // (fe238c7). + it('reads own non-finite text that is not an element at once, as the char it is', () => { + const half = '1'.repeat(2500); + const text = half + '+' + half + 'x'; + const t0 = performance.now(); + const n = parse({ _type: 'cdata', _value: text, _nonFinite: true }); + expect(performance.now() - t0).toBeLessThan(1000); + expect([n._kind, n._scalarType, n._scalarValue]).toEqual(['scalar', 'char', text]); + }); + // MATLAB's preamble ahead of the element: two version bytes then 'IM'. const PREAMBLE = [0x00, 0x01, 0x49, 0x4d, 0x00, 0x00, 0x00, 0x00]; diff --git a/test/piOther.test.ts b/test/piOther.test.ts index d7ff9163..9470dde8 100644 --- a/test/piOther.test.ts +++ b/test/piOther.test.ts @@ -199,6 +199,19 @@ describe('buildOtherRows — a cdata value is read, not printed', () => { expect(shows(stream({ className: 'char', dimensions: [2, 2, 2], value: 'abcdefgh' }))).toBe('<2x2x2 char>'); }); + // Complex text is held to XmlUtils.parseComplexNum, whose decimal was `\d+\.?\d*`: on text + // that is not an element that cost the cube of its length, 7.0 s for this one to show. + // Here it takes at most 6.4 ms over two full runs, so 1 s is past five times CI's time, + // at 3.3 times this machine's (fe238c7). + it('text that is not complex shows at once, as it is, however many digits it holds', () => { + const half = '1'.repeat(2500); + const text = half + '+' + half + 'x'; + const t0 = performance.now(); + const shown = shows({ _type: 'cdata', _value: text }); + expect(performance.now() - t0).toBeLessThan(1000); + expect(shown).toBe(text); + }); + it('a stream that does not decode shows nothing rather than its characters; other text shows as it is', () => { expect(shows({ _type: 'cdata', _value: ' %)30 not a stream' })).toBe(''); expect(shows({ _type: 'cdata', _value: 'not complex text' })).toBe('not complex text'); diff --git a/test/xmlUtils.test.ts b/test/xmlUtils.test.ts index ff60deb0..6fd69228 100644 --- a/test/xmlUtils.test.ts +++ b/test/xmlUtils.test.ts @@ -12,6 +12,7 @@ import { formatComplexXml, formatMatlabNum, parseMatlabNum, + parseComplexNum, transposeToColumnMajor, pad, } from '../src/datamodel/parser/XmlUtils.js'; @@ -160,6 +161,39 @@ describe('formatComplexXml', () => { }); }); +describe('parseComplexNum', () => { + it('reads every spelling of an element, and refuses what is not one', () => { + expect(parseComplexNum('3+4i')).toEqual({ re: 3, im: 4 }); + expect(parseComplexNum('3.0+4.0i')).toEqual({ re: 3, im: 4 }); + expect(parseComplexNum('1.0E-20+2.0E+21i')).toEqual({ re: 1e-20, im: 2e21 }); + // A part may end in its dot, or start with it. + expect(parseComplexNum('1.+.5i')).toEqual({ re: 1, im: 0.5 }); + expect(parseComplexNum('-1.5e3-2.i')).toEqual({ re: -1500, im: -2 }); + expect(parseComplexNum('1NaNi')).toEqual({ re: 1, im: NaN }); + expect(parseComplexNum('+1-NaNi')).toEqual({ re: 1, im: NaN }); + expect(parseComplexNum('-Inf+2i')).toEqual({ re: -Infinity, im: 2 }); + expect(parseComplexNum('1+Infinityi')).toEqual({ re: 1, im: Infinity }); + for (const text of ['1.2.3+4i', '1e+5i', '12+i', '.+1i', '1+2']) { + expect(parseComplexNum(text), text).toBeNull(); + } + }); + + // A part's decimal was `\d+\.?\d*`, which with no dot splits a run of digits every way it + // can before it fails, and an element has two parts: text that is not an element cost the + // cube of its length. That text is a file's, a text dictionary's `_nonFinite` cdata on open + // or a binary one's complex value in the Property Inspector. On the old pattern these two + // took 6.9 s and 4.2 s. Here they take 0.2 ms over two full runs, so 100 ms is past five + // times CI's time, at 3.3 times this machine's (fe238c7). + it('refuses text that is not an element at once, however many digits it holds', () => { + const half = '1'.repeat(2500); + for (const text of [half + '+' + half + 'x', '1'.repeat(100_000) + 'x']) { + const t0 = performance.now(); + expect(parseComplexNum(text)).toBeNull(); + expect(performance.now() - t0).toBeLessThan(100); + } + }); +}); + describe('transposeToColumnMajor', () => { it('reorders a matrix from our row-major layout to MATLAB column-major', () => { // [1 2 3; 4 5 6] is stored by MATLAB as 1 4 2 5 3 6. From 552b8fc910f70fd52ee1e23bb57a9cfd34dab81e Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Sun, 11 Oct 2026 19:13:21 -0400 Subject: [PATCH 3/3] Drop MATLAB's .0 from cdata text in linear time, with the matches the replace made MatlabVariableNode._parseCdataText and piOther.formatCdata drop MATLAB's `.0` from each part of complex cdata text with `.replace(/(\d+)\.0(?=[+\-i]|$)/g, '$1')`. The scan tries a match at every digit of a run that no `.0` follows, and each walks the rest of the run, so a run of digits cost its square. The text is a dictionary's cdata as read, a binary one's complex value or a text one's, on open and in the Property Inspector. Measured on this machine: 100,000 digits took 4.3 s to read and 4.3 s to show, and a 100,419 B text dictionary holding them took 4.4 s to open. CodeQL does not report it. `(? 0 && parts.every((t) => parseComplexNum(t) !== null); } + // MATLAB's `.0` is dropped from each part: `3.0+4.0i` reads as `3+4i`. `(? t.replace(/(\d+)\.0(?=[+\-i]|$)/g, '$1')); + const colMajor = text.trim() === '' ? [] : text.trim().split(/\s+/).map((t) => t.replace(/(? 0 && parts.every((t) => parseComplexNum(t) !== null); } + // MATLAB's `.0` is dropped from each part: `3.0+4.0i` reads as `3+4i`. `(?, name: string, parent: BaseNode | null): MatlabVariableNode { const colMajorParts = (rawVal._value as string) .trim() .split(/\s+/) .map(function (s) { - return s.replace(/(\d+)\.0(?=[+\-i]|$)/g, '$1'); + return s.replace(/(?): string { const text = v._value as string; if (!isMatCdata(v)) { - const colMajor = text.trim() === '' ? [] : text.trim().split(/\s+/).map((t) => t.replace(/(\d+)\.0(?=[+\-i]|$)/g, '$1')); + const colMajor = text.trim() === '' ? [] : text.trim().split(/\s+/).map((t) => t.replace(/(? { expect([n._kind, n._scalarType, n._scalarValue]).toEqual(['scalar', 'char', text]); }); + it("drops MATLAB's .0 from a part, and only where the part ends", () => { + expect(parse({ _type: 'cdata', _value: '3.0+4.0i' })._scalarValue).toBe('3+4i'); + expect(parse({ _type: 'cdata', _value: '100.0i' })._scalarValue).toBe('100i'); + expect(parse({ _type: 'cdata', _value: '1.0E-20+2.0i' })._scalarValue).toBe('1.0E-20+2i'); + expect(parse({ _type: 'cdata', _value: '10.0-20.0i 3.05+4.0i' })._elements).toEqual(['10-20i', '3.05+4i']); + }); + + // The `.0` was dropped with `(\d+)\.0(?=[+\-i]|$)` alone, which started a match at every + // digit of a run, and each walked the rest of the run: a cdata value of 100,000 digits + // took 4.3 s to read. Here it takes 0.6 ms over two full runs, so 1 s is past five times + // CI's time, at 3.3 times this machine's (fe238c7). + it('reads a long run of digits at once', () => { + const t0 = performance.now(); + const n = parse({ _type: 'cdata', _value: '1'.repeat(100_000) }); + expect(performance.now() - t0).toBeLessThan(1000); + expect([n._kind, n._scalarType, n._scalarValue.length]).toEqual(['scalar', 'complex', 100_000]); + }); + // MATLAB's preamble ahead of the element: two version bytes then 'IM'. const PREAMBLE = [0x00, 0x01, 0x49, 0x4d, 0x00, 0x00, 0x00, 0x00]; diff --git a/test/piOther.test.ts b/test/piOther.test.ts index 9470dde8..836294fa 100644 --- a/test/piOther.test.ts +++ b/test/piOther.test.ts @@ -212,6 +212,18 @@ describe('buildOtherRows — a cdata value is read, not printed', () => { expect(shown).toBe(text); }); + // The `.0` was dropped with `(\d+)\.0(?=[+\-i]|$)` alone, which started a match at every + // digit of a run, and each walked the rest of the run: 100,000 digits took 4.3 s to show. + // Here it takes 0.6 ms over two full runs, so 1 s is past five times CI's time, at 3.3 + // times this machine's (fe238c7). + it('a long run of digits shows at once, as it is', () => { + const digits = '1'.repeat(100_000); + const t0 = performance.now(); + const shown = shows({ _type: 'cdata', _value: digits }); + expect(performance.now() - t0).toBeLessThan(1000); + expect(shown).toBe(digits); + }); + it('a stream that does not decode shows nothing rather than its characters; other text shows as it is', () => { expect(shows({ _type: 'cdata', _value: ' %)30 not a stream' })).toBe(''); expect(shows({ _type: 'cdata', _value: 'not complex text' })).toBe('not complex text');