securemark 0.232.2 → 0.233.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,20 +16,18 @@ describe('Unit: parser/inline/mark', () => {
16
16
  assert.deepStrictEqual(inspect(parser('==a\n==')), [['==', 'a', '<br>'], '==']);
17
17
  assert.deepStrictEqual(inspect(parser('==a\\ ==')), [['==', 'a', ' '], '==']);
18
18
  assert.deepStrictEqual(inspect(parser('==a\\\n==')), [['==', 'a', '<span class="linebreak"> </span>'], '==']);
19
- assert.deepStrictEqual(inspect(parser('==a [# b #]==')), [['==', 'a', ' ', '<sup class="comment" title="b"></sup>'], '==']);
20
19
  assert.deepStrictEqual(inspect(parser('== ==')), undefined);
21
20
  assert.deepStrictEqual(inspect(parser('== a==')), undefined);
22
21
  assert.deepStrictEqual(inspect(parser('== a ==')), undefined);
23
22
  assert.deepStrictEqual(inspect(parser('==\na==')), undefined);
24
23
  assert.deepStrictEqual(inspect(parser('==\\\na==')), undefined);
25
24
  assert.deepStrictEqual(inspect(parser('==<wbr>a==')), undefined);
26
- assert.deepStrictEqual(inspect(parser('==[# a #]b==')), undefined);
27
25
  assert.deepStrictEqual(inspect(parser(' ==a==')), undefined);
28
26
  });
29
27
 
30
28
  it('basic', () => {
31
29
  assert.deepStrictEqual(inspect(parser('==a==')), [['<mark>a</mark>'], '']);
32
- assert.deepStrictEqual(inspect(parser('==ab==')), [['<mark>ab</mark>'], '']);
30
+ assert.deepStrictEqual(inspect(parser('==a=b==')), [['<mark>a=b</mark>'], '']);
33
31
  assert.deepStrictEqual(inspect(parser('==a\nb==')), [['<mark>a<br>b</mark>'], '']);
34
32
  assert.deepStrictEqual(inspect(parser('==a\\\nb==')), [['<mark>a<span class="linebreak"> </span>b</mark>'], '']);
35
33
  assert.deepStrictEqual(inspect(parser('==\\===')), [['<mark>=</mark>'], '']);
@@ -37,7 +35,6 @@ describe('Unit: parser/inline/mark', () => {
37
35
  });
38
36
 
39
37
  it('nest', () => {
40
- assert.deepStrictEqual(inspect(parser('==a[# b #]==')), [['<mark>a<sup class="comment" title="b"></sup></mark>'], '']);
41
38
  assert.deepStrictEqual(inspect(parser('==*==a==*==')), [['<mark><em><mark>a</mark></em></mark>'], '']);
42
39
  });
43
40
 
@@ -18,15 +18,14 @@ describe('Unit: parser/inline/reference', () => {
18
18
  assert.deepStrictEqual(inspect(parser('[[\na]]')), undefined);
19
19
  assert.deepStrictEqual(inspect(parser('[[\\ a]]')), undefined);
20
20
  assert.deepStrictEqual(inspect(parser('[[\\\na]]')), undefined);
21
+ assert.deepStrictEqual(inspect(parser('[[<wbr>a]]')), undefined);
21
22
  assert.deepStrictEqual(inspect(parser('[[a\n]]')), undefined);
22
23
  assert.deepStrictEqual(inspect(parser('[[a\\\n]]')), undefined);
23
24
  assert.deepStrictEqual(inspect(parser('[[a\nb]]')), undefined);
24
25
  assert.deepStrictEqual(inspect(parser('[[a\\\nb]]')), undefined);
25
- assert.deepStrictEqual(inspect(parser('[[<wbr>a]]')), undefined);
26
- assert.deepStrictEqual(inspect(parser('[[[# a #]b]]')), undefined);
27
- assert.deepStrictEqual(inspect(parser('[[a]b]]')), undefined);
28
26
  assert.deepStrictEqual(inspect(parser('[[*a\nb*]]')), undefined);
29
27
  assert.deepStrictEqual(inspect(parser('[[\\]]')), undefined);
28
+ assert.deepStrictEqual(inspect(parser('[[a]b]]')), undefined);
30
29
  assert.deepStrictEqual(inspect(parser('[[[a]]')), undefined);
31
30
  assert.deepStrictEqual(inspect(parser(' [[a]]')), undefined);
32
31
  });
@@ -39,7 +38,6 @@ describe('Unit: parser/inline/reference', () => {
39
38
  assert.deepStrictEqual(inspect(parser('[[a ]]')), [['<sup class="reference">a</sup>'], '']);
40
39
  assert.deepStrictEqual(inspect(parser('[[a &nbsp;]]')), [['<sup class="reference">a</sup>'], '']);
41
40
  assert.deepStrictEqual(inspect(parser('[[a <wbr>]]')), [['<sup class="reference">a</sup>'], '']);
42
- assert.deepStrictEqual(inspect(parser('[[a [# b #]]]')), [['<sup class="reference">a <sup class="comment" title="b"></sup></sup>'], '']);
43
41
  assert.deepStrictEqual(inspect(parser('[[ab]]')), [['<sup class="reference">ab</sup>'], '']);
44
42
  });
45
43
 
@@ -55,46 +53,46 @@ describe('Unit: parser/inline/reference', () => {
55
53
  });
56
54
 
57
55
  it('abbr', () => {
58
- assert.deepStrictEqual(inspect(parser('[[^]]')), [['<sup class="reference invalid">^</sup>'], '']);
56
+ assert.deepStrictEqual(inspect(parser('[[^]]')), [['<sup class="invalid">^</sup>'], '']);
59
57
  assert.deepStrictEqual(inspect(parser('[[^a]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
60
58
  assert.deepStrictEqual(inspect(parser('[[^a,]]')), [['<sup class="reference" data-abbr="a,"></sup>'], '']);
61
59
  assert.deepStrictEqual(inspect(parser('[[^a, ]]')), [['<sup class="reference" data-abbr="a,"></sup>'], '']);
62
60
  assert.deepStrictEqual(inspect(parser('[[^a ]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
63
- assert.deepStrictEqual(inspect(parser('[[^a ]]')), [['<sup class="reference invalid">^a</sup>'], '']);
61
+ assert.deepStrictEqual(inspect(parser('[[^a ]]')), [['<sup class="invalid">^a</sup>'], '']);
64
62
  assert.deepStrictEqual(inspect(parser('[[^a b]]')), [['<sup class="reference" data-abbr="a b"></sup>'], '']);
65
- assert.deepStrictEqual(inspect(parser('[[^a b]]')), [['<sup class="reference invalid">^a b</sup>'], '']);
63
+ assert.deepStrictEqual(inspect(parser('[[^a b]]')), [['<sup class="invalid">^a b</sup>'], '']);
66
64
  assert.deepStrictEqual(inspect(parser('[[^a|]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
67
65
  assert.deepStrictEqual(inspect(parser('[[^a,|]]')), [['<sup class="reference" data-abbr="a,"></sup>'], '']);
68
66
  assert.deepStrictEqual(inspect(parser('[[^a |]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
69
- assert.deepStrictEqual(inspect(parser('[[^a|b]]')), [['<sup class="reference invalid">^a|b</sup>'], '']);
67
+ assert.deepStrictEqual(inspect(parser('[[^a|b]]')), [['<sup class="invalid">^a|b</sup>'], '']);
70
68
  assert.deepStrictEqual(inspect(parser('[[^a| ]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
71
69
  assert.deepStrictEqual(inspect(parser('[[^a| b]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
72
70
  assert.deepStrictEqual(inspect(parser('[[^a| b ]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
73
71
  assert.deepStrictEqual(inspect(parser('[[^a| b ]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
74
72
  assert.deepStrictEqual(inspect(parser('[[^a| ]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
75
73
  assert.deepStrictEqual(inspect(parser('[[^a| b]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
76
- assert.deepStrictEqual(inspect(parser('[[^a| <wbr>]]')), [['<sup class="reference invalid">^a|</sup>'], '']);
77
- assert.deepStrictEqual(inspect(parser('[[^a| <wbr>b]]')), [['<sup class="reference invalid">^a| <wbr>b</sup>'], '']);
74
+ assert.deepStrictEqual(inspect(parser('[[^a| <wbr>]]')), [['<sup class="invalid">^a|</sup>'], '']);
75
+ assert.deepStrictEqual(inspect(parser('[[^a| <wbr>b]]')), [['<sup class="invalid">^a| <wbr>b</sup>'], '']);
78
76
  assert.deepStrictEqual(inspect(parser('[[^a| ^b]]')), [['<sup class="reference" data-abbr="a">^b</sup>'], '']);
79
- assert.deepStrictEqual(inspect(parser('[[^1]]')), [['<sup class="reference invalid">^1</sup>'], '']);
77
+ assert.deepStrictEqual(inspect(parser('[[^1]]')), [['<sup class="invalid">^1</sup>'], '']);
80
78
  assert.deepStrictEqual(inspect(parser('[[^1a]]')), [['<sup class="reference" data-abbr="1a"></sup>'], '']);
81
- assert.deepStrictEqual(inspect(parser('[[^1 ]]')), [['<sup class="reference invalid">^1</sup>'], '']);
79
+ assert.deepStrictEqual(inspect(parser('[[^1 ]]')), [['<sup class="invalid">^1</sup>'], '']);
82
80
  assert.deepStrictEqual(inspect(parser('[[^1 a]]')), [['<sup class="reference" data-abbr="1 a"></sup>'], '']);
83
- assert.deepStrictEqual(inspect(parser('[[^1|]]')), [['<sup class="reference invalid">^1|</sup>'], '']);
84
- assert.deepStrictEqual(inspect(parser('[[^1 |]]')), [['<sup class="reference invalid">^1 |</sup>'], '']);
81
+ assert.deepStrictEqual(inspect(parser('[[^1|]]')), [['<sup class="invalid">^1|</sup>'], '']);
82
+ assert.deepStrictEqual(inspect(parser('[[^1 |]]')), [['<sup class="invalid">^1 |</sup>'], '']);
85
83
  assert.deepStrictEqual(inspect(parser('[[^Xyz2020]]')), [['<sup class="reference" data-abbr="Xyz2020"></sup>'], '']);
86
84
  assert.deepStrictEqual(inspect(parser('[[^Xyz 2020]]')), [['<sup class="reference" data-abbr="Xyz 2020"></sup>'], '']);
87
85
  assert.deepStrictEqual(inspect(parser('[[^Xyz, 2020, p1-2]]')), [['<sup class="reference" data-abbr="Xyz, 2020, p1-2"></sup>'], '']);
88
86
  assert.deepStrictEqual(inspect(parser('[[^X. Y., Z et al., 2020, p1-2]]')), [['<sup class="reference" data-abbr="X. Y., Z et al., 2020, p1-2"></sup>'], '']);
89
87
  assert.deepStrictEqual(inspect(parser(`[[^A's, Aces']]`)), [[`<sup class="reference" data-abbr="A's, Aces'"></sup>`], '']);
90
- assert.deepStrictEqual(inspect(parser('[[^^]]')), [['<sup class="reference invalid">^^</sup>'], '']);
88
+ assert.deepStrictEqual(inspect(parser('[[^^]]')), [['<sup class="invalid">^^</sup>'], '']);
91
89
  assert.deepStrictEqual(inspect(parser('[[\\^]]')), [['<sup class="reference">^</sup>'], '']);
92
- assert.deepStrictEqual(inspect(parser('[[^ ]]')), [['<sup class="reference invalid">^</sup>'], '']);
93
- assert.deepStrictEqual(inspect(parser('[[^ a]]')), [['<sup class="reference invalid">^ a</sup>'], '']);
94
- assert.deepStrictEqual(inspect(parser('[[^ |]]')), [['<sup class="reference invalid">^ |</sup>'], '']);
95
- assert.deepStrictEqual(inspect(parser('[[^ |b]]')), [['<sup class="reference invalid">^ |b</sup>'], '']);
96
- assert.deepStrictEqual(inspect(parser('[[^ | ]]')), [['<sup class="reference invalid">^ |</sup>'], '']);
97
- assert.deepStrictEqual(inspect(parser('[[^ | b]]')), [['<sup class="reference invalid">^ | b</sup>'], '']);
90
+ assert.deepStrictEqual(inspect(parser('[[^ ]]')), [['<sup class="invalid">^</sup>'], '']);
91
+ assert.deepStrictEqual(inspect(parser('[[^ a]]')), [['<sup class="invalid">^ a</sup>'], '']);
92
+ assert.deepStrictEqual(inspect(parser('[[^ |]]')), [['<sup class="invalid">^ |</sup>'], '']);
93
+ assert.deepStrictEqual(inspect(parser('[[^ |b]]')), [['<sup class="invalid">^ |b</sup>'], '']);
94
+ assert.deepStrictEqual(inspect(parser('[[^ | ]]')), [['<sup class="invalid">^ |</sup>'], '']);
95
+ assert.deepStrictEqual(inspect(parser('[[^ | b]]')), [['<sup class="invalid">^ | b</sup>'], '']);
98
96
  });
99
97
 
100
98
  });
@@ -43,7 +43,7 @@ function attributes(ns: (string | HTMLElement)[]): Record<string, string | undef
43
43
  }
44
44
  : ns[0] === ''
45
45
  ? {
46
- class: 'reference invalid',
46
+ class: 'invalid',
47
47
  'data-invalid-syntax': 'reference',
48
48
  'data-invalid-type': 'syntax',
49
49
  'data-invalid-description': 'Invalid abbr.',
@@ -15,7 +15,6 @@ describe('Unit: parser/inline/strong', () => {
15
15
  assert.deepStrictEqual(inspect(parser('**a\\ **')), [['**', 'a', ' '], '**']);
16
16
  assert.deepStrictEqual(inspect(parser('**a\\\n**')), [['**', 'a', '<span class="linebreak"> </span>'], '**']);
17
17
  assert.deepStrictEqual(inspect(parser('**a*b**')), [['**', 'a', '<em>b</em>', '*'], '']);
18
- assert.deepStrictEqual(inspect(parser('**a [# b #]**')), [['**', 'a', ' ', '<sup class="comment" title="b"></sup>'], '**']);
19
18
  assert.deepStrictEqual(inspect(parser('** **')), undefined);
20
19
  assert.deepStrictEqual(inspect(parser('** a**')), undefined);
21
20
  assert.deepStrictEqual(inspect(parser('** a **')), undefined);
@@ -24,7 +23,6 @@ describe('Unit: parser/inline/strong', () => {
24
23
  assert.deepStrictEqual(inspect(parser('**\\ a**')), undefined);
25
24
  assert.deepStrictEqual(inspect(parser('**\\\na**')), undefined);
26
25
  assert.deepStrictEqual(inspect(parser('**<wbr>a**')), undefined);
27
- assert.deepStrictEqual(inspect(parser('**[# a #]b**')), undefined);
28
26
  assert.deepStrictEqual(inspect(parser('***a***')), undefined);
29
27
  assert.deepStrictEqual(inspect(parser(' **a**')), undefined);
30
28
  });
@@ -40,7 +38,6 @@ describe('Unit: parser/inline/strong', () => {
40
38
  assert.deepStrictEqual(inspect(parser('**a*b*c**')), [['<strong>a<em>b</em>c</strong>'], '']);
41
39
  assert.deepStrictEqual(inspect(parser('**a*b*c**d')), [['<strong>a<em>b</em>c</strong>'], 'd']);
42
40
  assert.deepStrictEqual(inspect(parser('**a *b***')), [['<strong>a <em>b</em></strong>'], '']);
43
- assert.deepStrictEqual(inspect(parser('**a[# b #]**')), [['<strong>a<sup class="comment" title="b"></sup></strong>'], '']);
44
41
  assert.deepStrictEqual(inspect(parser('**`a`**')), [['<strong><code data-src="`a`">a</code></strong>'], '']);
45
42
  assert.deepStrictEqual(inspect(parser('**<small>**')), [['<strong>&lt;small&gt;</strong>'], '']);
46
43
  assert.deepStrictEqual(inspect(parser('**(*a*)**')), [['<strong><span class="paren">(<em>a</em>)</span></strong>'], '']);
@@ -11,8 +11,8 @@ describe('Unit: parser/inline/template', () => {
11
11
  assert.deepStrictEqual(inspect(parser('{')), undefined);
12
12
  assert.deepStrictEqual(inspect(parser('{}')), undefined);
13
13
  assert.deepStrictEqual(inspect(parser('{{')), undefined);
14
- assert.deepStrictEqual(inspect(parser('{{a}b}}')), undefined);
15
14
  assert.deepStrictEqual(inspect(parser('{{\\}}')), undefined);
15
+ assert.deepStrictEqual(inspect(parser('{{a}b}')), undefined);
16
16
  assert.deepStrictEqual(inspect(parser('{{{a}}')), undefined);
17
17
  assert.deepStrictEqual(inspect(parser(' {{}}')), undefined);
18
18
  });
@@ -4,11 +4,11 @@ import { escape } from './inline/escape';
4
4
  import { annotation } from './inline/annotation';
5
5
  import { reference } from './inline/reference';
6
6
  import { template } from './inline/template';
7
+ import { comment } from './inline/comment';
7
8
  import { extension } from './inline/extension';
8
9
  import { ruby } from './inline/ruby';
9
10
  import { link } from './inline/link';
10
11
  import { html } from './inline/html';
11
- import { comment } from './inline/comment';
12
12
  import { insertion } from './inline/insertion';
13
13
  import { deletion } from './inline/deletion';
14
14
  import { mark } from './inline/mark';
@@ -29,11 +29,11 @@ export import EscapeParser = InlineParser.EscapeParser;
29
29
  export import AnnotationParser = InlineParser.AnnotationParser;
30
30
  export import ReferenceParser = InlineParser.ReferenceParser;
31
31
  export import TemplateParser = InlineParser.TemplateParser;
32
+ export import CommentParser = InlineParser.CommentParser;
32
33
  export import ExtensionParser = InlineParser.ExtensionParser;
33
34
  export import RubyParser = InlineParser.RubyParser;
34
35
  export import LinkParser = InlineParser.LinkParser;
35
36
  export import HTMLParser = InlineParser.HTMLParser;
36
- export import CommentParser = InlineParser.CommentParser;
37
37
  export import InsertionParser = InlineParser.InsertionParser;
38
38
  export import DeletionParser = InlineParser.DeletionParser;
39
39
  export import MarkParser = InlineParser.MarkParser;
@@ -54,12 +54,12 @@ export const inline: InlineParser = union([
54
54
  annotation,
55
55
  reference,
56
56
  template,
57
+ comment,
57
58
  extension,
58
59
  ruby,
59
60
  link,
60
61
  media,
61
62
  html,
62
- comment,
63
63
  insertion,
64
64
  deletion,
65
65
  mark,
@@ -22,8 +22,8 @@ function build(
22
22
  marker: (index: number, abbr: string | undefined) => string,
23
23
  ) {
24
24
  assert(syntax.match(/^[a-z]+$/));
25
- // Referenceを含むAnnotationの重複排除は両構文が互いに処理済みである必要があるため
26
- // 事後の補正処理が必要となり各1回の処理では不可能
25
+ // Referenceを含むAnnotationの重複排除は両構文が互いに処理済みであることを必要とするため
26
+ // 構文ごとに各1回の処理では不可能
27
27
  const identify = memoize<HTMLElement, string>(
28
28
  ref => `${+!ref.querySelector('.label')}:${ref.getAttribute('data-abbr') || '_' + ref.innerHTML}`,
29
29
  new WeakMap());
@@ -69,6 +69,7 @@ function build(
69
69
  || titles.get(identifier)
70
70
  || +identifier[0] && ref.title
71
71
  || text(content).trim()
72
+ || content.textContent!.trim()
72
73
  || undefined;
73
74
  title
74
75
  ? !titles.has(identifier) && titles.set(identifier, title)
@@ -2,7 +2,6 @@ import { undefined } from 'spica/global';
2
2
  import { MarkdownParser } from '../../markdown';
3
3
  import { Parser, eval } from '../combinator/data/parser';
4
4
  import { union, some, verify, convert } from '../combinator';
5
- import { comment } from './inline/comment';
6
5
  import { unsafehtmlentity } from './inline/htmlentity';
7
6
  import { linebreak, unescsource } from './source';
8
7
  import { push, pop } from 'spica/array';
@@ -42,13 +41,13 @@ const invisibleHTMLEntityNames = [
42
41
  'InvisibleComma',
43
42
  'ic',
44
43
  ];
45
- const blankline = new RegExp(String.raw`^(?!$)(?:\\$|\\?[^\S\n]|&(?:${invisibleHTMLEntityNames.join('|')});|<wbr>|\[(#+)(?!\S|\s+\1\]|\s*\[\1(?:$|\s))((?:\s+\S+)+?)(?:\s+(\1\])|\s*(?=\[\1(?:$|\s))))+(?=$|(\S))`, 'gm');
44
+ const blankline = new RegExp(String.raw`^(?!$)(?:\\$|\\?[^\S\n]|&(?:${invisibleHTMLEntityNames.join('|')});|<wbr>)+$`, 'gm');
46
45
 
47
46
  export function visualize<P extends Parser<HTMLElement | string>>(parser: P): P;
48
47
  export function visualize<T extends HTMLElement | string>(parser: Parser<T>): Parser<T> {
49
48
  return union([
50
49
  convert(
51
- source => source.replace(blankline, (line, ...$) => !$[3] ? line.replace(/[\\&<\[]/g, '\x1B$&') : line),
50
+ source => source.replace(blankline, line => line.replace(/[\\&<]/g, '\x1B$&')),
52
51
  verify(parser, (ns, rest, context) => !rest && hasVisible(ns, context))),
53
52
  some(union([linebreak, unescsource])),
54
53
  ]);
@@ -117,15 +116,6 @@ function isStartTight(source: string, context: MarkdownParser.Context): boolean
117
116
  return false;
118
117
  }
119
118
  return true;
120
- case '[':
121
- switch (true) {
122
- case source.length >= 7
123
- && source[1] === '#'
124
- && eval(comment(source, context))?.[0].className === 'comment':
125
- assert(!eval(comment(source, context))?.[0].matches('.invalid'));
126
- return false;
127
- }
128
- return true;
129
119
  default:
130
120
  return source[0].trimStart() !== '';
131
121
  }
@@ -138,7 +128,6 @@ export function isEndTightNodes(nodes: readonly (HTMLElement | string)[]): boole
138
128
  if (nodes.length === 0) return true;
139
129
  for (let i = nodes.length; i--;) {
140
130
  const node = nodes[i];
141
- if (typeof node === 'object' && node.className === 'comment') continue;
142
131
  return isVisible(node, -1);
143
132
  }
144
133
  return false;
@@ -165,8 +154,6 @@ function isVisible(node: HTMLElement | string, strpos?: number): boolean {
165
154
  return false;
166
155
  case 'SPAN':
167
156
  return node.className !== 'linebreak';
168
- case 'SUP':
169
- return node.className !== 'comment';
170
157
  default:
171
158
  return true;
172
159
  }
@@ -179,7 +166,6 @@ export function trimNode(nodes: (HTMLElement | string)[]): (HTMLElement | string
179
166
  function trimNodeStart(nodes: (HTMLElement | string)[]): (HTMLElement | string)[] {
180
167
  for (let node = nodes[0]; nodes.length > 0 && !isVisible(node = nodes[0], 0);) {
181
168
  if (nodes.length === 1 && typeof node === 'object' && node.className === 'indexer') break;
182
- if (typeof node === 'object' && node.className === 'comment') break;
183
169
  if (typeof node === 'string') {
184
170
  const pos = node.length - node.trimStart().length;
185
171
  if (pos > 0) {
@@ -198,7 +184,6 @@ export function trimNodeEnd(nodes: (HTMLElement | string)[]): (HTMLElement | str
198
184
  ? [nodes.pop()!]
199
185
  : [];
200
186
  for (let node = nodes[0]; nodes.length > 0 && !isVisible(node = nodes[nodes.length - 1], -1);) {
201
- if (typeof node === 'object' && node.className === 'comment') break;
202
187
  if (typeof node === 'string') {
203
188
  const pos = node.trimEnd().length;
204
189
  if (pos > 0) {
@@ -1,14 +0,0 @@
1
- import { visualize } from './util';
2
-
3
- describe('Unit: parser/util', () => {
4
- describe('visualize', () => {
5
- it('stress', () => {
6
- visualize(s => [[s], ''])(`[# ${'a'.repeat(100000 - 6)} #]`);
7
- visualize(s => [[s], ''])(`[# ${'a\n'.repeat(100000 / 2 - 6 / 2)} #]`);
8
- visualize(s => [[s], ''])(`[# a${' '.repeat(100000 - 6)} #`);
9
- visualize(s => [[s], ''])(`${'[# '.repeat(100000 - 2)}a #]`);
10
- });
11
-
12
- });
13
-
14
- });