@stencil/core 4.45.1-dev.1790831344.bc393d0 → 4.45.1-dev.1790917749.556b091

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.
@@ -108,6 +108,10 @@ var require_brace_expansion = __commonJS({
108
108
  var escClose = "\0CLOSE" + Math.random() + "\0";
109
109
  var escComma = "\0COMMA" + Math.random() + "\0";
110
110
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
111
+ var EXPANSION_MAX = 1e5;
112
+ var EXPANSION_MAX_LENGTH = 4e6;
113
+ var EXPANSION_MAX_DEPTH = 1e3;
114
+ var EXPANSION_MAX_REWRITES = 1e3;
111
115
  function numeric(str) {
112
116
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
113
117
  }
@@ -117,33 +121,49 @@ var require_brace_expansion = __commonJS({
117
121
  function unescapeBraces(str) {
118
122
  return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
119
123
  }
124
+ function pushAll(target, items) {
125
+ for (var i2 = 0; i2 < items.length; i2++) {
126
+ target.push(items[i2]);
127
+ }
128
+ }
120
129
  function parseCommaParts(str) {
121
- if (!str)
122
- return [""];
123
130
  var parts = [];
124
- var m = balanced("{", "}", str);
125
- if (!m)
126
- return str.split(",");
127
- var pre = m.pre;
128
- var body = m.body;
129
- var post = m.post;
130
- var p = pre.split(",");
131
- p[p.length - 1] += "{" + body + "}";
132
- var postParts = parseCommaParts(post);
133
- if (post.length) {
134
- p[p.length - 1] += postParts.shift();
135
- p.push.apply(p, postParts);
136
- }
137
- parts.push.apply(parts, p);
138
- return parts;
139
- }
140
- function expandTop(str) {
131
+ var carry = "";
132
+ for (; ; ) {
133
+ var m = balanced("{", "}", str);
134
+ if (!m) {
135
+ var tail = str.split(",");
136
+ tail[0] = carry + tail[0];
137
+ pushAll(parts, tail);
138
+ return parts;
139
+ }
140
+ var pre = m.pre;
141
+ var body = m.body;
142
+ var post = m.post;
143
+ var p = pre.split(",");
144
+ p[0] = carry + p[0];
145
+ p[p.length - 1] += "{" + body + "}";
146
+ if (!post.length) {
147
+ pushAll(parts, p);
148
+ return parts;
149
+ }
150
+ carry = p.pop();
151
+ pushAll(parts, p);
152
+ str = post;
153
+ }
154
+ }
155
+ function expandTop(str, options) {
141
156
  if (!str)
142
157
  return [];
158
+ options = options || {};
159
+ var max = options.max == null ? EXPANSION_MAX : options.max;
160
+ var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
161
+ var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
162
+ var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
143
163
  if (str.substr(0, 2) === "{}") {
144
164
  str = "\\{\\}" + str.substr(2);
145
165
  }
146
- return expand2(escapeBraces(str), true).map(unescapeBraces);
166
+ return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
147
167
  }
148
168
  function embrace(str) {
149
169
  return "{" + str + "}";
@@ -157,93 +177,165 @@ var require_brace_expansion = __commonJS({
157
177
  function gte(i2, y) {
158
178
  return i2 >= y;
159
179
  }
160
- function expand2(str, isTop) {
161
- var expansions = [];
162
- var m = balanced("{", "}", str);
163
- if (!m) return [str];
164
- var pre = m.pre;
165
- var post = m.post.length ? expand2(m.post, false) : [""];
166
- if (/\$$/.test(m.pre)) {
167
- for (var k = 0; k < post.length; k++) {
168
- var expansion = pre + "{" + m.body + "}" + post[k];
169
- expansions.push(expansion);
180
+ function combine(acc, pre, values, max, maxLength, dropEmpties) {
181
+ var out = [];
182
+ var length = 0;
183
+ for (var a = 0; a < acc.length; a++) {
184
+ for (var v = 0; v < values.length; v++) {
185
+ if (out.length >= max) return out;
186
+ var expansion = acc[a] + pre + values[v];
187
+ if (dropEmpties && !expansion) continue;
188
+ if (length + expansion.length > maxLength) return out;
189
+ out.push(expansion);
190
+ length += expansion.length;
191
+ }
192
+ }
193
+ return out;
194
+ }
195
+ function expandSequence(body, isAlphaSequence, max, maxLength) {
196
+ var n = body.split(/\.\./);
197
+ var N = [];
198
+ if (n[0] === void 0 || n[1] === void 0) {
199
+ return N;
200
+ }
201
+ var x = numeric(n[0]);
202
+ var y = numeric(n[1]);
203
+ var width = Math.max(n[0].length, n[1].length);
204
+ var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
205
+ var test = lte;
206
+ var reverse = y < x;
207
+ if (reverse) {
208
+ incr *= -1;
209
+ test = gte;
210
+ }
211
+ var pad = n.some(isPadded);
212
+ var length = 0;
213
+ for (var i2 = x; test(i2, y) && N.length < max; i2 += incr) {
214
+ var c;
215
+ if (isAlphaSequence) {
216
+ c = String.fromCharCode(i2);
217
+ if (c === "\\") {
218
+ c = "";
219
+ }
220
+ } else {
221
+ c = String(i2);
222
+ if (pad) {
223
+ var need = width - c.length;
224
+ if (need > 0) {
225
+ var z = new Array(need + 1).join("0");
226
+ if (i2 < 0) {
227
+ c = "-" + z + c.slice(1);
228
+ } else {
229
+ c = z + c;
230
+ }
231
+ }
232
+ }
233
+ }
234
+ if (length + c.length > maxLength) break;
235
+ N.push(c);
236
+ length += c.length;
237
+ }
238
+ return N;
239
+ }
240
+ function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
241
+ if (depth > maxDepth) {
242
+ return [str];
243
+ }
244
+ var acc = [""];
245
+ var rewrites = 0;
246
+ var dropEmpties = false;
247
+ var firstGroup = true;
248
+ for (; ; ) {
249
+ const m = balanced("{", "}", str);
250
+ if (!m) {
251
+ return combine(acc, str, [""], max, maxLength, dropEmpties);
252
+ }
253
+ const pre = m.pre;
254
+ if (/\$$/.test(pre)) {
255
+ acc = combine(
256
+ acc,
257
+ pre + "{" + m.body + "}",
258
+ [""],
259
+ max,
260
+ maxLength,
261
+ dropEmpties && !m.post.length
262
+ );
263
+ firstGroup = false;
264
+ if (!m.post.length) break;
265
+ str = m.post;
266
+ continue;
170
267
  }
171
- } else {
172
268
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
173
269
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
174
270
  var isSequence = isNumericSequence || isAlphaSequence;
175
271
  var isOptions = m.body.indexOf(",") >= 0;
176
272
  if (!isSequence && !isOptions) {
177
- if (m.post.match(/,(?!,).*\}/)) {
273
+ if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
274
+ rewrites++;
178
275
  str = m.pre + "{" + m.body + escClose + m.post;
179
- return expand2(str);
276
+ isTop = true;
277
+ continue;
180
278
  }
181
- return [str];
279
+ return combine(
280
+ acc,
281
+ pre + "{" + m.body + "}" + m.post,
282
+ [""],
283
+ max,
284
+ maxLength,
285
+ dropEmpties
286
+ );
182
287
  }
183
- var n;
288
+ if (firstGroup) {
289
+ dropEmpties = isTop && !isSequence;
290
+ firstGroup = false;
291
+ }
292
+ var values;
184
293
  if (isSequence) {
185
- n = m.body.split(/\.\./);
294
+ values = expandSequence(m.body, isAlphaSequence, max, maxLength);
186
295
  } else {
187
- n = parseCommaParts(m.body);
188
- if (n.length === 1) {
189
- n = expand2(n[0], false).map(embrace);
296
+ var n = parseCommaParts(m.body);
297
+ if (n.length === 1 && n[0] !== void 0) {
298
+ n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
190
299
  if (n.length === 1) {
191
- return post.map(function(p) {
192
- return m.pre + n[0] + p;
193
- });
300
+ acc = combine(
301
+ acc,
302
+ pre + n[0],
303
+ [""],
304
+ max,
305
+ maxLength,
306
+ dropEmpties && !m.post.length
307
+ );
308
+ if (!m.post.length) break;
309
+ str = m.post;
310
+ continue;
194
311
  }
195
312
  }
196
- }
197
- var N;
198
- if (isSequence) {
199
- var x = numeric(n[0]);
200
- var y = numeric(n[1]);
201
- var width = Math.max(n[0].length, n[1].length);
202
- var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
203
- var test = lte;
204
- var reverse = y < x;
205
- if (reverse) {
206
- incr *= -1;
207
- test = gte;
313
+ var dropsEmpties = dropEmpties && !m.post.length && !pre;
314
+ for (var d = 0; dropsEmpties && d < acc.length; d++) {
315
+ if (acc[d]) {
316
+ dropsEmpties = false;
317
+ }
208
318
  }
209
- var pad = n.some(isPadded);
210
- N = [];
211
- for (var i2 = x; test(i2, y); i2 += incr) {
212
- var c;
213
- if (isAlphaSequence) {
214
- c = String.fromCharCode(i2);
215
- if (c === "\\")
216
- c = "";
217
- } else {
218
- c = String(i2);
219
- if (pad) {
220
- var need = width - c.length;
221
- if (need > 0) {
222
- var z = new Array(need + 1).join("0");
223
- if (i2 < 0)
224
- c = "-" + z + c.slice(1);
225
- else
226
- c = z + c;
227
- }
319
+ values = [];
320
+ var valuesLength = 0;
321
+ outer: for (var j = 0; j < n.length; j++) {
322
+ var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
323
+ for (var k = 0; k < expanded.length; k++) {
324
+ var v = expanded[k];
325
+ if (dropsEmpties && !v) continue;
326
+ if (values.length >= max || valuesLength + v.length > maxLength) {
327
+ break outer;
228
328
  }
329
+ values.push(v);
330
+ valuesLength += v.length;
229
331
  }
230
- N.push(c);
231
- }
232
- } else {
233
- N = [];
234
- for (var j = 0; j < n.length; j++) {
235
- N.push.apply(N, expand2(n[j], false));
236
- }
237
- }
238
- for (var j = 0; j < N.length; j++) {
239
- for (var k = 0; k < post.length; k++) {
240
- var expansion = pre + N[j] + post[k];
241
- if (!isTop || isSequence || expansion)
242
- expansions.push(expansion);
243
332
  }
244
333
  }
334
+ acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
335
+ if (!m.post.length) break;
336
+ str = m.post;
245
337
  }
246
- return expansions;
338
+ return acc;
247
339
  }
248
340
  }
249
341
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stencil/core/internal/testing",
3
- "version": "4.45.1-dev.1790831344.bc393d0",
3
+ "version": "4.45.1-dev.1790917749.556b091",
4
4
  "description": "Stencil internal testing platform to be imported by the Stencil Compiler. Breaking changes can and will happen at any time.",
5
5
  "main": "./index.js",
6
6
  "private": true
@@ -1,5 +1,5 @@
1
1
  /*!
2
- Stencil Mock Doc (CommonJS) v4.45.1-dev.1790831344.bc393d0 | MIT Licensed | https://stenciljs.com
2
+ Stencil Mock Doc (CommonJS) v4.45.1-dev.1790917749.556b091 | MIT Licensed | https://stenciljs.com
3
3
  */
4
4
  "use strict";
5
5
  var __defProp = Object.defineProperty;
package/mock-doc/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- Stencil Mock Doc v4.45.1-dev.1790831344.bc393d0 | MIT Licensed | https://stenciljs.com
2
+ Stencil Mock Doc v4.45.1-dev.1790917749.556b091 | MIT Licensed | https://stenciljs.com
3
3
  */
4
4
  var __defProp = Object.defineProperty;
5
5
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stencil/core/mock-doc",
3
- "version": "4.45.1-dev.1790831344.bc393d0",
3
+ "version": "4.45.1-dev.1790917749.556b091",
4
4
  "description": "Mock window, document and DOM outside of a browser environment.",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stencil/core",
3
- "version": "4.45.1-dev.1790831344.bc393d0",
3
+ "version": "4.45.1-dev.1790917749.556b091",
4
4
  "license": "MIT",
5
5
  "main": "./internal/stencil-core/index.cjs",
6
6
  "module": "./internal/stencil-core/index.js",
@@ -1,5 +1,5 @@
1
1
  /*
2
- Stencil Screenshot v4.45.1-dev.1790831344.bc393d0 | MIT Licensed | https://stenciljs.com
2
+ Stencil Screenshot v4.45.1-dev.1790917749.556b091 | MIT Licensed | https://stenciljs.com
3
3
  */
4
4
  "use strict";
5
5
  var __create = Object.create;
@@ -111,6 +111,10 @@ var require_brace_expansion = __commonJS({
111
111
  var escClose = "\0CLOSE" + Math.random() + "\0";
112
112
  var escComma = "\0COMMA" + Math.random() + "\0";
113
113
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
114
+ var EXPANSION_MAX = 1e5;
115
+ var EXPANSION_MAX_LENGTH = 4e6;
116
+ var EXPANSION_MAX_DEPTH = 1e3;
117
+ var EXPANSION_MAX_REWRITES = 1e3;
114
118
  function numeric(str) {
115
119
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
116
120
  }
@@ -120,33 +124,49 @@ var require_brace_expansion = __commonJS({
120
124
  function unescapeBraces(str) {
121
125
  return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
122
126
  }
127
+ function pushAll(target, items) {
128
+ for (var i = 0; i < items.length; i++) {
129
+ target.push(items[i]);
130
+ }
131
+ }
123
132
  function parseCommaParts(str) {
124
- if (!str)
125
- return [""];
126
133
  var parts = [];
127
- var m = balanced("{", "}", str);
128
- if (!m)
129
- return str.split(",");
130
- var pre = m.pre;
131
- var body = m.body;
132
- var post = m.post;
133
- var p = pre.split(",");
134
- p[p.length - 1] += "{" + body + "}";
135
- var postParts = parseCommaParts(post);
136
- if (post.length) {
137
- p[p.length - 1] += postParts.shift();
138
- p.push.apply(p, postParts);
134
+ var carry = "";
135
+ for (; ; ) {
136
+ var m = balanced("{", "}", str);
137
+ if (!m) {
138
+ var tail = str.split(",");
139
+ tail[0] = carry + tail[0];
140
+ pushAll(parts, tail);
141
+ return parts;
142
+ }
143
+ var pre = m.pre;
144
+ var body = m.body;
145
+ var post = m.post;
146
+ var p = pre.split(",");
147
+ p[0] = carry + p[0];
148
+ p[p.length - 1] += "{" + body + "}";
149
+ if (!post.length) {
150
+ pushAll(parts, p);
151
+ return parts;
152
+ }
153
+ carry = p.pop();
154
+ pushAll(parts, p);
155
+ str = post;
139
156
  }
140
- parts.push.apply(parts, p);
141
- return parts;
142
157
  }
143
- function expandTop(str) {
158
+ function expandTop(str, options) {
144
159
  if (!str)
145
160
  return [];
161
+ options = options || {};
162
+ var max = options.max == null ? EXPANSION_MAX : options.max;
163
+ var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
164
+ var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
165
+ var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
146
166
  if (str.substr(0, 2) === "{}") {
147
167
  str = "\\{\\}" + str.substr(2);
148
168
  }
149
- return expand2(escapeBraces(str), true).map(unescapeBraces);
169
+ return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
150
170
  }
151
171
  function embrace(str) {
152
172
  return "{" + str + "}";
@@ -160,93 +180,165 @@ var require_brace_expansion = __commonJS({
160
180
  function gte(i, y) {
161
181
  return i >= y;
162
182
  }
163
- function expand2(str, isTop) {
164
- var expansions = [];
165
- var m = balanced("{", "}", str);
166
- if (!m) return [str];
167
- var pre = m.pre;
168
- var post = m.post.length ? expand2(m.post, false) : [""];
169
- if (/\$$/.test(m.pre)) {
170
- for (var k = 0; k < post.length; k++) {
171
- var expansion = pre + "{" + m.body + "}" + post[k];
172
- expansions.push(expansion);
183
+ function combine(acc, pre, values, max, maxLength, dropEmpties) {
184
+ var out = [];
185
+ var length = 0;
186
+ for (var a = 0; a < acc.length; a++) {
187
+ for (var v = 0; v < values.length; v++) {
188
+ if (out.length >= max) return out;
189
+ var expansion = acc[a] + pre + values[v];
190
+ if (dropEmpties && !expansion) continue;
191
+ if (length + expansion.length > maxLength) return out;
192
+ out.push(expansion);
193
+ length += expansion.length;
194
+ }
195
+ }
196
+ return out;
197
+ }
198
+ function expandSequence(body, isAlphaSequence, max, maxLength) {
199
+ var n = body.split(/\.\./);
200
+ var N = [];
201
+ if (n[0] === void 0 || n[1] === void 0) {
202
+ return N;
203
+ }
204
+ var x = numeric(n[0]);
205
+ var y = numeric(n[1]);
206
+ var width = Math.max(n[0].length, n[1].length);
207
+ var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
208
+ var test = lte;
209
+ var reverse = y < x;
210
+ if (reverse) {
211
+ incr *= -1;
212
+ test = gte;
213
+ }
214
+ var pad = n.some(isPadded);
215
+ var length = 0;
216
+ for (var i = x; test(i, y) && N.length < max; i += incr) {
217
+ var c;
218
+ if (isAlphaSequence) {
219
+ c = String.fromCharCode(i);
220
+ if (c === "\\") {
221
+ c = "";
222
+ }
223
+ } else {
224
+ c = String(i);
225
+ if (pad) {
226
+ var need = width - c.length;
227
+ if (need > 0) {
228
+ var z = new Array(need + 1).join("0");
229
+ if (i < 0) {
230
+ c = "-" + z + c.slice(1);
231
+ } else {
232
+ c = z + c;
233
+ }
234
+ }
235
+ }
236
+ }
237
+ if (length + c.length > maxLength) break;
238
+ N.push(c);
239
+ length += c.length;
240
+ }
241
+ return N;
242
+ }
243
+ function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
244
+ if (depth > maxDepth) {
245
+ return [str];
246
+ }
247
+ var acc = [""];
248
+ var rewrites = 0;
249
+ var dropEmpties = false;
250
+ var firstGroup = true;
251
+ for (; ; ) {
252
+ const m = balanced("{", "}", str);
253
+ if (!m) {
254
+ return combine(acc, str, [""], max, maxLength, dropEmpties);
255
+ }
256
+ const pre = m.pre;
257
+ if (/\$$/.test(pre)) {
258
+ acc = combine(
259
+ acc,
260
+ pre + "{" + m.body + "}",
261
+ [""],
262
+ max,
263
+ maxLength,
264
+ dropEmpties && !m.post.length
265
+ );
266
+ firstGroup = false;
267
+ if (!m.post.length) break;
268
+ str = m.post;
269
+ continue;
173
270
  }
174
- } else {
175
271
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
176
272
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
177
273
  var isSequence = isNumericSequence || isAlphaSequence;
178
274
  var isOptions = m.body.indexOf(",") >= 0;
179
275
  if (!isSequence && !isOptions) {
180
- if (m.post.match(/,(?!,).*\}/)) {
276
+ if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
277
+ rewrites++;
181
278
  str = m.pre + "{" + m.body + escClose + m.post;
182
- return expand2(str);
279
+ isTop = true;
280
+ continue;
183
281
  }
184
- return [str];
282
+ return combine(
283
+ acc,
284
+ pre + "{" + m.body + "}" + m.post,
285
+ [""],
286
+ max,
287
+ maxLength,
288
+ dropEmpties
289
+ );
290
+ }
291
+ if (firstGroup) {
292
+ dropEmpties = isTop && !isSequence;
293
+ firstGroup = false;
185
294
  }
186
- var n;
295
+ var values;
187
296
  if (isSequence) {
188
- n = m.body.split(/\.\./);
297
+ values = expandSequence(m.body, isAlphaSequence, max, maxLength);
189
298
  } else {
190
- n = parseCommaParts(m.body);
191
- if (n.length === 1) {
192
- n = expand2(n[0], false).map(embrace);
299
+ var n = parseCommaParts(m.body);
300
+ if (n.length === 1 && n[0] !== void 0) {
301
+ n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
193
302
  if (n.length === 1) {
194
- return post.map(function(p) {
195
- return m.pre + n[0] + p;
196
- });
303
+ acc = combine(
304
+ acc,
305
+ pre + n[0],
306
+ [""],
307
+ max,
308
+ maxLength,
309
+ dropEmpties && !m.post.length
310
+ );
311
+ if (!m.post.length) break;
312
+ str = m.post;
313
+ continue;
197
314
  }
198
315
  }
199
- }
200
- var N;
201
- if (isSequence) {
202
- var x = numeric(n[0]);
203
- var y = numeric(n[1]);
204
- var width = Math.max(n[0].length, n[1].length);
205
- var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
206
- var test = lte;
207
- var reverse = y < x;
208
- if (reverse) {
209
- incr *= -1;
210
- test = gte;
316
+ var dropsEmpties = dropEmpties && !m.post.length && !pre;
317
+ for (var d = 0; dropsEmpties && d < acc.length; d++) {
318
+ if (acc[d]) {
319
+ dropsEmpties = false;
320
+ }
211
321
  }
212
- var pad = n.some(isPadded);
213
- N = [];
214
- for (var i = x; test(i, y); i += incr) {
215
- var c;
216
- if (isAlphaSequence) {
217
- c = String.fromCharCode(i);
218
- if (c === "\\")
219
- c = "";
220
- } else {
221
- c = String(i);
222
- if (pad) {
223
- var need = width - c.length;
224
- if (need > 0) {
225
- var z = new Array(need + 1).join("0");
226
- if (i < 0)
227
- c = "-" + z + c.slice(1);
228
- else
229
- c = z + c;
230
- }
322
+ values = [];
323
+ var valuesLength = 0;
324
+ outer: for (var j = 0; j < n.length; j++) {
325
+ var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
326
+ for (var k = 0; k < expanded.length; k++) {
327
+ var v = expanded[k];
328
+ if (dropsEmpties && !v) continue;
329
+ if (values.length >= max || valuesLength + v.length > maxLength) {
330
+ break outer;
231
331
  }
332
+ values.push(v);
333
+ valuesLength += v.length;
232
334
  }
233
- N.push(c);
234
- }
235
- } else {
236
- N = [];
237
- for (var j = 0; j < n.length; j++) {
238
- N.push.apply(N, expand2(n[j], false));
239
- }
240
- }
241
- for (var j = 0; j < N.length; j++) {
242
- for (var k = 0; k < post.length; k++) {
243
- var expansion = pre + N[j] + post[k];
244
- if (!isTop || isSequence || expansion)
245
- expansions.push(expansion);
246
335
  }
247
336
  }
337
+ acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
338
+ if (!m.post.length) break;
339
+ str = m.post;
248
340
  }
249
- return expansions;
341
+ return acc;
250
342
  }
251
343
  }
252
344
  });