@litert/typeguard 1.3.0-dev.0 → 1.4.0

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.
Files changed (61) hide show
  1. package/CHANGES.md +7 -1
  2. package/lib/BuiltInTypeCompiler.d.ts +1 -1
  3. package/lib/BuiltInTypeCompiler.js +4 -4
  4. package/lib/BuiltInTypeCompiler.js.map +1 -1
  5. package/lib/BuiltInTypes.d.ts +1 -1
  6. package/lib/BuiltInTypes.js +1 -1
  7. package/lib/Common.d.ts +6 -5
  8. package/lib/Common.d.ts.map +1 -1
  9. package/lib/Common.js +1 -1
  10. package/lib/Compiler.d.ts +1 -1
  11. package/lib/Compiler.d.ts.map +1 -1
  12. package/lib/Compiler.js +57 -35
  13. package/lib/Compiler.js.map +1 -1
  14. package/lib/Context.d.ts +2 -2
  15. package/lib/Context.d.ts.map +1 -1
  16. package/lib/Context.js +2 -2
  17. package/lib/Context.js.map +1 -1
  18. package/lib/FilterCompiler.d.ts +3 -3
  19. package/lib/FilterCompiler.d.ts.map +1 -1
  20. package/lib/FilterCompiler.js +4 -4
  21. package/lib/FilterCompiler.js.map +1 -1
  22. package/lib/InlineCompiler.d.ts +2 -2
  23. package/lib/InlineCompiler.d.ts.map +1 -1
  24. package/lib/InlineCompiler.js +5 -7
  25. package/lib/InlineCompiler.js.map +1 -1
  26. package/lib/Internal.d.ts +9 -4
  27. package/lib/Internal.d.ts.map +1 -1
  28. package/lib/Internal.js +45 -4
  29. package/lib/Internal.js.map +1 -1
  30. package/lib/Modifiers.d.ts +2 -1
  31. package/lib/Modifiers.d.ts.map +1 -1
  32. package/lib/Modifiers.js +3 -2
  33. package/lib/Modifiers.js.map +1 -1
  34. package/lib/index.d.ts +1 -1
  35. package/lib/index.js +1 -1
  36. package/lib/langs/JavaScript.d.ts +1 -1
  37. package/lib/langs/JavaScript.js +2 -2
  38. package/package.json +11 -13
  39. package/src/examples/quick-start.ts +5 -1
  40. package/src/lib/BuiltInTypeCompiler.ts +4 -4
  41. package/src/lib/BuiltInTypes.ts +1 -1
  42. package/src/lib/Common.ts +5 -4
  43. package/src/lib/Compiler.ts +66 -39
  44. package/src/lib/Context.ts +2 -2
  45. package/src/lib/FilterCompiler.ts +3 -3
  46. package/src/lib/InlineCompiler.ts +6 -9
  47. package/src/lib/Internal.ts +73 -4
  48. package/src/lib/Modifiers.ts +3 -1
  49. package/src/lib/index.ts +1 -1
  50. package/src/lib/langs/JavaScript.ts +2 -2
  51. package/src/test/00-all.ts +1 -1
  52. package/src/test/01-elemental-types.ts +580 -580
  53. package/src/test/02-array-and-list.ts +43 -43
  54. package/src/test/03-tuple.ts +61 -61
  55. package/src/test/04-from-string.ts +501 -501
  56. package/src/test/05-string-asserts.ts +203 -203
  57. package/src/test/06-structure.ts +71 -71
  58. package/src/test/07-modifiers.ts +297 -48
  59. package/src/test/08-map-and-dict.ts +11 -11
  60. package/src/test/09-exceptions.ts +11 -11
  61. package/src/test/abstracts.ts +57 -29
package/CHANGES.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changes Logs
2
2
 
3
+ ## v1.4.0
4
+
5
+ - build(project): upgraded toolchains.
6
+ - feat(rules): added supports of modifier `$.enum`.
7
+ - feat(rules): added supports of using pre-defined type with custom arguments.
8
+
3
9
  ## v1.3.0
4
10
 
5
11
  - fix(project): replaced substr with slice.
@@ -40,7 +46,7 @@
40
46
 
41
47
  - New modifier `$.string` for value in string form.
42
48
 
43
- - Improved tuple, add omittable dots `...` supports.
49
+ - Improved tuple, add optional dots `...` supports.
44
50
 
45
51
  > e.g. `["$.tuple", "string", "...3", "int", "..."]`
46
52
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Angus Fenying <fenying@litert.org>
2
+ * Copyright 2023 Angus Fenying <fenying@litert.org>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2022 Angus Fenying <fenying@litert.org>
3
+ * Copyright 2023 Angus Fenying <fenying@litert.org>
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
@@ -376,7 +376,7 @@ class BuiltInTypeCompiler {
376
376
  return this._lang.isUndefined(ctx.vName, false);
377
377
  }
378
378
  case B.STRUCT: {
379
- return this._lang.isStrucutre(ctx.vName, true);
379
+ return this._lang.isStructure(ctx.vName, true);
380
380
  }
381
381
  case B.NUMERIC: {
382
382
  if (args.length) {
@@ -500,7 +500,7 @@ class BuiltInTypeCompiler {
500
500
  throw new SyntaxError('Invalid syntax of integer.');
501
501
  }
502
502
  if (fromString) {
503
- ctx.untrap();
503
+ ctx.popUp();
504
504
  return this._lang.and([
505
505
  this._lang.or([
506
506
  result[0],
@@ -580,7 +580,7 @@ class BuiltInTypeCompiler {
580
580
  throw new SyntaxError('Invalid syntax of integer.');
581
581
  }
582
582
  if (fromString) {
583
- ctx.untrap();
583
+ ctx.popUp();
584
584
  return this._lang.and([
585
585
  this._lang.or([
586
586
  result[0],
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltInTypeCompiler.js","sourceRoot":"","sources":["../src/lib/BuiltInTypeCompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BuiltInTypeCompiler.js","sourceRoot":"","sources":["../src/lib/BuiltInTypeCompiler.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Angus Fenying <fenying@litert.org>
2
+ * Copyright 2023 Angus Fenying <fenying@litert.org>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2022 Angus Fenying <fenying@litert.org>
3
+ * Copyright 2023 Angus Fenying <fenying@litert.org>
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
package/lib/Common.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- export declare type ITypeChecker<T> = (v: unknown, errorTraces?: string[]) => v is T;
1
+ export type ITypeChecker<T> = (v: unknown, errorTraces?: string[]) => v is T;
2
+ export type IPreDefinedTypeChecker<T> = (v: unknown, ...args: any[]) => v is T;
2
3
  /**
3
4
  * @deprecated Use `ITypeChecker` instead.
4
5
  */
5
- export declare type TypeChecker<T> = ITypeChecker<T>;
6
+ export type TypeChecker<T> = ITypeChecker<T>;
6
7
  export interface ICompileOutputArgument {
7
8
  /**
8
9
  * The name of argument.
@@ -102,7 +103,7 @@ export interface ILanguageBuilder {
102
103
  * @param b
103
104
  */
104
105
  modOf(a: string, b: string): string;
105
- literal(val: string | boolean | number): string;
106
+ literal(val: string | boolean | number | null): string;
106
107
  /**
107
108
  * Get the statement checking if a string expression includes a given
108
109
  * string expression.
@@ -164,7 +165,7 @@ export interface ILanguageBuilder {
164
165
  * @param expr The expression to be checked.
165
166
  * @param positive Assert positive or negative.
166
167
  */
167
- isStrucutre(expr: string, positive: boolean): string;
168
+ isStructure(expr: string, positive: boolean): string;
168
169
  /**
169
170
  * Get the statement checking if an expression is an integer value.
170
171
  *
@@ -213,7 +214,7 @@ export interface ILanguageBuilder {
213
214
  */
214
215
  stringLength(expr: string): string;
215
216
  /**
216
- * Get the statement of the keys list of an dicitionary.
217
+ * Get the statement of the keys list of an dictionary.
217
218
  *
218
219
  * @param expr The expression of dictionary.
219
220
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../src/lib/Common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../src/lib/Common.ts"],"names":[],"mappings":"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"}
package/lib/Common.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright 2022 Angus Fenying <fenying@litert.org>
3
+ * Copyright 2023 Angus Fenying <fenying@litert.org>
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
package/lib/Compiler.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Angus Fenying <fenying@litert.org>
2
+ * Copyright 2023 Angus Fenying <fenying@litert.org>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -1 +1 @@
1
- {"version":3,"file":"Compiler.d.ts","sourceRoot":"","sources":["../src/lib/Compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AA62C9B;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,SAAS,CAOpE"}
1
+ {"version":3,"file":"Compiler.d.ts","sourceRoot":"","sources":["../src/lib/Compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAw4C9B;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,SAAS,CAOpE"}
package/lib/Compiler.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2022 Angus Fenying <fenying@litert.org>
3
+ * Copyright 2023 Angus Fenying <fenying@litert.org>
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
@@ -121,7 +121,7 @@ class Compiler {
121
121
  default:
122
122
  break;
123
123
  }
124
- throw new TypeError('Unknwn rules.');
124
+ throw new TypeError('Unknown rules.');
125
125
  }
126
126
  _compileStringRule(ctx, rule) {
127
127
  const strAssert = this._useStringAssert(ctx, rule);
@@ -199,7 +199,7 @@ class Compiler {
199
199
  ])
200
200
  ]);
201
201
  }
202
- if (rule.startsWith(I.PREDEF_TYPE_SYMBOL)) {
202
+ if (rule.startsWith(I.PRE_DEF_TYPE_SYMBOL)) {
203
203
  return this._usePredefinedType(ctx, rule.slice(1));
204
204
  }
205
205
  regResult = /^(\w+)(\(\s*(-?\d+(\.\d+)?)?\s*,?\s*(-?\d+(\.\d+)?)?\s*\))?$/.exec(rule);
@@ -223,16 +223,16 @@ class Compiler {
223
223
  }
224
224
  throw new TypeError(`Unknown type "${rule}".`);
225
225
  }
226
- _usePredefinedType(ctx, typeName) {
227
- this._validateTypeName(typeName);
228
- ctx.referredTypes[typeName] = true;
229
- return this._lang.call(this._lang.fieldIndex(ctx.typeSlotName, this._lang.literal(typeName)), ctx.vName);
226
+ _usePredefinedType(ctx, typeExpr) {
227
+ const expr = I.decodePreDefinedCallExpr(typeExpr);
228
+ ctx.referredTypes[expr.name] = true;
229
+ return this._lang.call(this._lang.fieldIndex(ctx.typeSlotName, this._lang.literal(expr.name)), ctx.vName, ...expr.args.map(i => this._lang.literal(i)));
230
230
  }
231
231
  _useStringAssert(ctx, rule) {
232
- var _a;
232
+ var _a, _b, _c;
233
233
  const assertRule = /^:([-\w]+):/.exec(rule);
234
- const offset = assertRule ? assertRule[1].length + 2 : 2;
235
- switch ((_a = (assertRule === null || assertRule === void 0 ? void 0 : assertRule[1])) !== null && _a !== void 0 ? _a : rule.slice(0, 2)) {
234
+ const offset = ((_b = (_a = assertRule === null || assertRule === void 0 ? void 0 : assertRule[1]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + 2;
235
+ switch ((_c = (assertRule === null || assertRule === void 0 ? void 0 : assertRule[1])) !== null && _c !== void 0 ? _c : rule.slice(0, 2)) {
236
236
  case '==':
237
237
  case 'equal':
238
238
  return this._lang.eq(ctx.vName, this._lang.literal(rule.slice(offset)));
@@ -295,7 +295,7 @@ class Compiler {
295
295
  }
296
296
  _compileModifiedRule(ctx, rules) {
297
297
  if (!rules.length) {
298
- throw new TypeError('Unknwon type "[]".');
298
+ throw new TypeError('Unknown type "[]".');
299
299
  }
300
300
  /**
301
301
  * By default, use OR modifier.
@@ -344,6 +344,9 @@ class Compiler {
344
344
  case M.TYPE: {
345
345
  return this._compileModifierTYPE(ctx, rules.slice(1));
346
346
  }
347
+ case M.ENUM: {
348
+ return this._compileModifierEnum(ctx, rules.slice(1));
349
+ }
347
350
  }
348
351
  throw new TypeError(`Unknown modifier "${rules[0]}".`);
349
352
  }
@@ -351,7 +354,7 @@ class Compiler {
351
354
  ctx.trap();
352
355
  ctx.flags[I.EFlags.FROM_STRING] = I.EFlagValue.ELEMENT_INHERIT;
353
356
  const result = this._compileModifiedRule(ctx, rules);
354
- ctx.untrap();
357
+ ctx.popUp();
355
358
  return result;
356
359
  }
357
360
  _compileModifierOR(ctx, rules) {
@@ -359,7 +362,7 @@ class Compiler {
359
362
  for (const r of rules) {
360
363
  ctx.trap();
361
364
  result.push(this._compile(ctx, r));
362
- ctx.untrap();
365
+ ctx.popUp();
363
366
  }
364
367
  return this._lang.or(result);
365
368
  }
@@ -380,11 +383,12 @@ class Compiler {
380
383
  ctx.tracePath = `${ctx.tracePath}[${this._lang.numberTemplateVar(traceOffset ? this._lang.add(traceOffset, vIter) : vIter)}]`;
381
384
  if (rules[0] !== B.ANY) {
382
385
  result.push(this._lang.closure([CLOSURE_PARAM], [CLOSURE_ARG], this._lang.series([
386
+ // eslint-disable-next-line @litert/rules/disable-for-each-method
383
387
  this._lang.forEach(CLOSURE_PARAM, vIter, ctx.vName, this._lang.ifThen(this._lang.not(this._compile(ctx, rules)), this._lang.returnValue(this._addTrace(ctx)))),
384
388
  this._lang.returnValue(this._lang.literal(true))
385
389
  ])));
386
390
  }
387
- ctx.untrap();
391
+ ctx.popUp();
388
392
  return this._lang.and(result);
389
393
  }
390
394
  _compileModifierARRAY(ctx, rules, traceOffset = 0) {
@@ -451,11 +455,12 @@ class Compiler {
451
455
  }
452
456
  if (rules[1] !== B.ANY) {
453
457
  result.push(this._lang.closure([CLOSURE_PARAM], [CLOSURE_ARG], this._lang.series([
458
+ // eslint-disable-next-line @litert/rules/disable-for-each-method
454
459
  this._lang.forEach(CLOSURE_PARAM, vIter, ctx.vName, this._lang.ifThen(this._lang.not(this._compile(ctx, rules.slice(1))), this._lang.returnValue(this._addTrace(ctx)))),
455
460
  this._lang.returnValue(this._lang.literal(true))
456
461
  ])));
457
462
  }
458
- ctx.untrap();
463
+ ctx.popUp();
459
464
  return this._lang.and(result);
460
465
  }
461
466
  _compileModifierTUPLE(ctx, rules) {
@@ -524,7 +529,7 @@ class Compiler {
524
529
  result.push(this._addTraceOr(ctx, this._compile(ctx, type)));
525
530
  tupleLength++;
526
531
  }
527
- ctx.untrap();
532
+ ctx.popUp();
528
533
  }
529
534
  if (tupleLength >= 0) {
530
535
  result.splice(1, -1, this._addTraceOr(ctx, this._lang.eq(this._lang.arrayLength(ctx.vName), tupleLength), '.length'));
@@ -534,15 +539,10 @@ class Compiler {
534
539
  }
535
540
  return this._lang.and(result);
536
541
  }
537
- _validateTypeName(name) {
538
- if (typeof name !== 'string' || !I.RE_VALID_CUSTOM_TYPE_NAME.test(name)) {
539
- throw new TypeError(`Invalid name ${JSON.stringify(name)} for a pre-defined type.`);
540
- }
541
- }
542
542
  _compileModifierTYPE(ctx, rules) {
543
- this._validateTypeName(rules[0]);
543
+ I.validateTypeName(rules[0]);
544
544
  if (this._defTypes[rules[0]]) {
545
- throw new Error(`Dplicated name ${JSON.stringify(rules[0])} for a pre-defined type.`);
545
+ throw new Error(`Duplicated name ${JSON.stringify(rules[0])} for a pre-defined type.`);
546
546
  }
547
547
  this._defTypes[rules[0]] = this.compile({
548
548
  rule: rules.slice(1),
@@ -557,7 +557,7 @@ class Compiler {
557
557
  }
558
558
  ctx.flags[I.EFlags.STRICT] = I.EFlagValue.INHERIT;
559
559
  const ret = this._compile(ctx, rules);
560
- ctx.untrap();
560
+ ctx.popUp();
561
561
  return ret;
562
562
  }
563
563
  _compileModifierEQUAL(ctx, rules) {
@@ -567,7 +567,7 @@ class Compiler {
567
567
  }
568
568
  ctx.flags[I.EFlags.STRICT] = I.EFlagValue.ELEMENT_INHERIT;
569
569
  const ret = this._compile(ctx, rules);
570
- ctx.untrap();
570
+ ctx.popUp();
571
571
  return ret;
572
572
  }
573
573
  _compileModifierMAP(ctx, rules) {
@@ -581,15 +581,37 @@ class Compiler {
581
581
  ctx.vName = this._lang.varName(ctx.vCursor++);
582
582
  ctx.tracePath = `${ctx.tracePath}[${this._lang.stringTemplateVar(vKey)}]`;
583
583
  const result = this._lang.and([
584
- this._lang.isStrucutre(vCArg, true),
584
+ this._lang.isStructure(vCArg, true),
585
585
  this._lang.closure([vCParam], [vCArg], this._lang.series([
586
586
  this._lang.forIn(vCParam, vKey, ctx.vName, this._lang.ifThen(this._lang.not(this._compile(ctx, rules)), this._lang.returnValue(this._addTrace(ctx)))),
587
587
  this._lang.returnValue(this._lang.literal(true))
588
588
  ]))
589
589
  ]);
590
- ctx.untrap();
590
+ ctx.popUp();
591
591
  return result;
592
592
  }
593
+ _compileModifierEnum(ctx, rules) {
594
+ if (rules.length === 0) {
595
+ throw new SyntaxError(`At least one enum candidate is required for $.enum`);
596
+ }
597
+ const ret = [];
598
+ for (const r of rules) {
599
+ switch (typeof r) {
600
+ case 'string':
601
+ case 'number':
602
+ case 'boolean':
603
+ ret.push(this._lang.eq(ctx.vName, this._lang.literal(r)));
604
+ break;
605
+ default:
606
+ if (r === null) {
607
+ ret.push(this._lang.eq(ctx.vName, this._lang.literal(null)));
608
+ break;
609
+ }
610
+ throw new SyntaxError(`Invalid literal value ${JSON.stringify(rules)} for $.enum.`);
611
+ }
612
+ }
613
+ return this._lang.or(ret);
614
+ }
593
615
  _compileModifierDICT(ctx, rules) {
594
616
  if (rules.length < 2 || !Array.isArray(rules[0])) {
595
617
  throw new SyntaxError(`Invalid dict ${JSON.stringify(rules)}.`);
@@ -600,7 +622,7 @@ class Compiler {
600
622
  this._lang.varName(id),
601
623
  rules.slice(1)
602
624
  ]);
603
- const type = `${I.PREDEF_TYPE_SYMBOL}${this._lang.varName(id)}`;
625
+ const type = `${I.PRE_DEF_TYPE_SYMBOL}${this._lang.varName(id)}`;
604
626
  for (const key of rules[0]) {
605
627
  if (typeof key !== 'string') {
606
628
  throw new SyntaxError(`Invalid key ${JSON.stringify(key)} for dict.`);
@@ -612,7 +634,7 @@ class Compiler {
612
634
  _compileSimpleStructure(ctx, rules) {
613
635
  const strict = !!ctx.flags[I.EFlags.STRICT];
614
636
  const result = [
615
- this._addTraceOr(ctx, this._lang.isStrucutre(ctx.vName, true), '!object')
637
+ this._addTraceOr(ctx, this._lang.isStructure(ctx.vName, true), '!object')
616
638
  ];
617
639
  const keys = [];
618
640
  for (let k in rules) {
@@ -673,7 +695,7 @@ class Compiler {
673
695
  ctx.vName = this._lang.fieldIndex(ctx.vName, this._lang.literal(k));
674
696
  ctx.tracePath = `${ctx.tracePath}[${this._lang.literal(k)}]`;
675
697
  result.push(this._addTraceOr(ctx, this._compile(ctx, rule)));
676
- ctx.untrap();
698
+ ctx.popUp();
677
699
  }
678
700
  if (strict && keys.length) {
679
701
  result.splice(1, -1, this._lang.arrayInSet(this._lang.keys(ctx.vName), this._lang.array(keys)));
@@ -689,7 +711,7 @@ class Compiler {
689
711
  return this._compileSimpleStructure(ctx, rules);
690
712
  }
691
713
  const result = [
692
- this._lang.isStrucutre(ctx.vName, true)
714
+ this._lang.isStructure(ctx.vName, true)
693
715
  ];
694
716
  ctx.trap();
695
717
  const CLOSURE_ARG = ctx.vName;
@@ -761,7 +783,7 @@ class Compiler {
761
783
  }
762
784
  CASES.push(this._lang.caseIf([this._lang.literal(k)], this._lang.ifThen(this._lang.not(this._compile(ctx, rule)), this._lang.returnValue(this._lang.literal(false)))));
763
785
  }
764
- ctx.untrap();
786
+ ctx.popUp();
765
787
  }
766
788
  if (keys.length) {
767
789
  result.push(this._lang.arrayInSet(this._lang.array(keys), this._lang.keys(CLOSURE_ARG)));
@@ -770,7 +792,7 @@ class Compiler {
770
792
  this._lang.forIn(CLOSURE_PARAM, FOR_KEY, ctx.vName, this._lang.switchCase(FOR_KEY, CASES)),
771
793
  this._lang.returnValue(this._lang.literal(true))
772
794
  ])));
773
- ctx.untrap();
795
+ ctx.popUp();
774
796
  return this._lang.and(result);
775
797
  }
776
798
  _isOrRule(rule) {
@@ -785,8 +807,8 @@ class Compiler {
785
807
  * @param lang The language builder.
786
808
  */
787
809
  function createCompiler(lang) {
788
- const bitc = new BuiltInTypeCompiler_1.BuiltInTypeCompiler(lang);
789
- return new Compiler(lang, bitc, new FilterCompiler_1.FilterCompiler(lang, bitc));
810
+ const ret = new BuiltInTypeCompiler_1.BuiltInTypeCompiler(lang);
811
+ return new Compiler(lang, ret, new FilterCompiler_1.FilterCompiler(lang, ret));
790
812
  }
791
813
  exports.createCompiler = createCompiler;
792
814
  //# sourceMappingURL=Compiler.js.map