@mojir/lits 2.1.34 → 2.1.36
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.
- package/README.md +396 -291
- package/dist/cli/cli.js +142 -82
- package/dist/index.esm.js +141 -81
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +141 -81
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +141 -81
- package/dist/lits.iife.js.map +1 -1
- package/dist/testFramework.esm.js +141 -81
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +141 -81
- package/dist/testFramework.js.map +1 -1
- package/package.json +1 -1
package/dist/testFramework.js
CHANGED
|
@@ -13915,9 +13915,6 @@ var Parser = /** @class */ (function () {
|
|
|
13915
13915
|
case 'doseq':
|
|
13916
13916
|
left = this.parseForOrDoseq(firstToken);
|
|
13917
13917
|
break;
|
|
13918
|
-
// cas:
|
|
13919
|
-
// left = this.parseDo(firstToken)
|
|
13920
|
-
// break
|
|
13921
13918
|
case 'loop':
|
|
13922
13919
|
left = this.parseLoop(firstToken);
|
|
13923
13920
|
break;
|
|
@@ -14119,6 +14116,12 @@ var Parser = /** @class */ (function () {
|
|
|
14119
14116
|
params.push(withSourceCodeInfo([NodeTypes.String, value], token[2]));
|
|
14120
14117
|
this.advance();
|
|
14121
14118
|
}
|
|
14119
|
+
else if (isLBracketToken(token)) {
|
|
14120
|
+
this.advance();
|
|
14121
|
+
params.push(this.parseExpression());
|
|
14122
|
+
assertRBracketToken(this.peek());
|
|
14123
|
+
this.advance();
|
|
14124
|
+
}
|
|
14122
14125
|
else {
|
|
14123
14126
|
throw new LitsError('Expected key to be a symbol or a string', this.peekSourceCodeInfo());
|
|
14124
14127
|
}
|
|
@@ -14249,9 +14252,17 @@ var Parser = /** @class */ (function () {
|
|
|
14249
14252
|
var nodes = void 0;
|
|
14250
14253
|
var docString = '';
|
|
14251
14254
|
if (isLBraceToken(this.peek())) {
|
|
14252
|
-
var
|
|
14253
|
-
|
|
14254
|
-
|
|
14255
|
+
var positionBefore = this.parseState.position;
|
|
14256
|
+
try {
|
|
14257
|
+
var objectNode = this.parseObject();
|
|
14258
|
+
nodes = [objectNode];
|
|
14259
|
+
}
|
|
14260
|
+
catch (_a) {
|
|
14261
|
+
this.parseState.position = positionBefore;
|
|
14262
|
+
var parsedBlock = this.parseBlock(true);
|
|
14263
|
+
docString = parsedBlock[1];
|
|
14264
|
+
nodes = parsedBlock[0][1][1];
|
|
14265
|
+
}
|
|
14255
14266
|
}
|
|
14256
14267
|
else {
|
|
14257
14268
|
nodes = [this.parseExpression()];
|
|
@@ -14268,7 +14279,7 @@ var Parser = /** @class */ (function () {
|
|
|
14268
14279
|
],
|
|
14269
14280
|
], firstToken[2]);
|
|
14270
14281
|
}
|
|
14271
|
-
catch (
|
|
14282
|
+
catch (_b) {
|
|
14272
14283
|
return null;
|
|
14273
14284
|
}
|
|
14274
14285
|
};
|
|
@@ -14318,9 +14329,17 @@ var Parser = /** @class */ (function () {
|
|
|
14318
14329
|
var nodes;
|
|
14319
14330
|
var docString = '';
|
|
14320
14331
|
if (isLBraceToken(this.peek())) {
|
|
14321
|
-
var
|
|
14322
|
-
|
|
14323
|
-
|
|
14332
|
+
var positionBefore = this.parseState.position;
|
|
14333
|
+
try {
|
|
14334
|
+
var objectNode = this.parseObject();
|
|
14335
|
+
nodes = [objectNode];
|
|
14336
|
+
}
|
|
14337
|
+
catch (_b) {
|
|
14338
|
+
this.parseState.position = positionBefore;
|
|
14339
|
+
var parsedBlock = this.parseBlock(true);
|
|
14340
|
+
docString = parsedBlock[1];
|
|
14341
|
+
nodes = parsedBlock[0][1][1];
|
|
14342
|
+
}
|
|
14324
14343
|
}
|
|
14325
14344
|
else {
|
|
14326
14345
|
nodes = [this.parseExpression()];
|
|
@@ -14518,9 +14537,6 @@ var Parser = /** @class */ (function () {
|
|
|
14518
14537
|
throw new LitsError('Expected }', this.peekSourceCodeInfo());
|
|
14519
14538
|
}
|
|
14520
14539
|
}
|
|
14521
|
-
if (expressions.length === 0) {
|
|
14522
|
-
expressions.push(withSourceCodeInfo([NodeTypes.ReservedSymbol, 'null'], token[2]));
|
|
14523
|
-
}
|
|
14524
14540
|
assertRBraceToken(this.peek());
|
|
14525
14541
|
this.advance();
|
|
14526
14542
|
return [
|
|
@@ -14598,8 +14614,7 @@ var Parser = /** @class */ (function () {
|
|
|
14598
14614
|
};
|
|
14599
14615
|
Parser.prototype.parseTry = function (token) {
|
|
14600
14616
|
this.advance();
|
|
14601
|
-
var tryExpression = this.
|
|
14602
|
-
assertReservedSymbolToken(this.peek(), 'catch');
|
|
14617
|
+
var tryExpression = this.parseImplicitBlock(['catch']);
|
|
14603
14618
|
this.advance();
|
|
14604
14619
|
var errorSymbol;
|
|
14605
14620
|
if (isLParenToken(this.peek())) {
|
|
@@ -14608,7 +14623,8 @@ var Parser = /** @class */ (function () {
|
|
|
14608
14623
|
assertRParenToken(this.peek());
|
|
14609
14624
|
this.advance();
|
|
14610
14625
|
}
|
|
14611
|
-
var catchExpression = this.
|
|
14626
|
+
var catchExpression = this.parseImplicitBlock(['end']);
|
|
14627
|
+
this.advance();
|
|
14612
14628
|
return withSourceCodeInfo([NodeTypes.SpecialExpression, [specialExpressionTypes.try, tryExpression, errorSymbol, catchExpression]], token[2]);
|
|
14613
14629
|
};
|
|
14614
14630
|
Parser.prototype.parseForOrDoseq = function (firstToken) {
|
|
@@ -15713,7 +15729,7 @@ var assertReference = {
|
|
|
15713
15729
|
{ argumentNames: ['value', 'message'] },
|
|
15714
15730
|
],
|
|
15715
15731
|
description: 'If $value is falsy it throws `AssertionError` with $message. If no $message is provided, message is set to $value.',
|
|
15716
|
-
examples: ['try
|
|
15732
|
+
examples: ['try assert(0, "Expected a positive value") catch (e) e.message end'],
|
|
15717
15733
|
noOperatorDocumentation: true,
|
|
15718
15734
|
},
|
|
15719
15735
|
'assert!=': {
|
|
@@ -15731,10 +15747,10 @@ var assertReference = {
|
|
|
15731
15747
|
],
|
|
15732
15748
|
description: 'If $a is the same as $b it throws `AssertionError`.',
|
|
15733
15749
|
examples: [
|
|
15734
|
-
'try
|
|
15735
|
-
'try
|
|
15736
|
-
'try
|
|
15737
|
-
'try
|
|
15750
|
+
'try assert!=(0, 0, "Expected different values") catch (e) e.message end',
|
|
15751
|
+
'try assert!=(0, 0) catch (e) e.message end',
|
|
15752
|
+
'try 0 assert!= 0 catch (e) e.message end',
|
|
15753
|
+
'try assert!=(0, 1) catch (e) e.message end',
|
|
15738
15754
|
],
|
|
15739
15755
|
noOperatorDocumentation: true,
|
|
15740
15756
|
},
|
|
@@ -15753,9 +15769,9 @@ var assertReference = {
|
|
|
15753
15769
|
],
|
|
15754
15770
|
description: 'If $a is not structural equal to $b it throws `AssertionError`.',
|
|
15755
15771
|
examples: [
|
|
15756
|
-
'try
|
|
15757
|
-
'try
|
|
15758
|
-
'try
|
|
15772
|
+
'try assert=({ "a": 1 }, { "a": 2 }, "Expected equal values") catch (e) e.message end',
|
|
15773
|
+
'try assert=({ "a": 1 }, { "a": 2 }) catch (e) e.message end',
|
|
15774
|
+
'try assert=({ "a": 1 }, { "a": 1 }) catch (e) e.message end',
|
|
15759
15775
|
],
|
|
15760
15776
|
noOperatorDocumentation: true,
|
|
15761
15777
|
},
|
|
@@ -15774,9 +15790,9 @@ var assertReference = {
|
|
|
15774
15790
|
],
|
|
15775
15791
|
description: 'If $a is not greater than $b it throws `AssertionError`.',
|
|
15776
15792
|
examples: [
|
|
15777
|
-
'try
|
|
15778
|
-
'try
|
|
15779
|
-
'try
|
|
15793
|
+
'try assert-gt(0, 1, "Expected greater value") catch (e) e.message end',
|
|
15794
|
+
'try assert-gt(0, 0) catch (e) e.message end',
|
|
15795
|
+
'try assert-gt(1, 0) catch (e) e.message end',
|
|
15780
15796
|
],
|
|
15781
15797
|
noOperatorDocumentation: true,
|
|
15782
15798
|
},
|
|
@@ -15795,9 +15811,9 @@ var assertReference = {
|
|
|
15795
15811
|
],
|
|
15796
15812
|
description: 'If $a is not less than $b it throws `AssertionError`.',
|
|
15797
15813
|
examples: [
|
|
15798
|
-
'try
|
|
15799
|
-
'try
|
|
15800
|
-
'try
|
|
15814
|
+
'try assert-lte(1, 0, "Expected smaller value value") catch (e) e.message end',
|
|
15815
|
+
'try assert-lte(1, 1) catch (e) e.message end',
|
|
15816
|
+
'try assert-lte(0, 1) catch (e) e.message end',
|
|
15801
15817
|
],
|
|
15802
15818
|
noOperatorDocumentation: true,
|
|
15803
15819
|
},
|
|
@@ -15816,9 +15832,9 @@ var assertReference = {
|
|
|
15816
15832
|
],
|
|
15817
15833
|
description: 'If $a is less than $b it throws `AssertionError`.',
|
|
15818
15834
|
examples: [
|
|
15819
|
-
'try
|
|
15820
|
-
'try
|
|
15821
|
-
'try
|
|
15835
|
+
'try assert-gte(0, 1, "Expected greater value") catch (e) e.message end',
|
|
15836
|
+
'try assert-gte(0, 1) catch (e) e.message end',
|
|
15837
|
+
'try assert-gte(1, 1) catch (e) e.message end',
|
|
15822
15838
|
],
|
|
15823
15839
|
noOperatorDocumentation: true,
|
|
15824
15840
|
},
|
|
@@ -15837,9 +15853,9 @@ var assertReference = {
|
|
|
15837
15853
|
],
|
|
15838
15854
|
description: 'If $a is grater than $b it throws `AssertionError`.',
|
|
15839
15855
|
examples: [
|
|
15840
|
-
'try
|
|
15841
|
-
'try
|
|
15842
|
-
'try
|
|
15856
|
+
'try assert-lte(1, 0, "Expected smaller value value") catch (e) e.message end',
|
|
15857
|
+
'try assert-lte(1, 0) catch (e) e.message end',
|
|
15858
|
+
'try assert-lte(1, 1) catch (e) e.message end',
|
|
15843
15859
|
],
|
|
15844
15860
|
noOperatorDocumentation: true,
|
|
15845
15861
|
},
|
|
@@ -15863,9 +15879,9 @@ var assertReference = {
|
|
|
15863
15879
|
],
|
|
15864
15880
|
description: 'If $value is not `true` it throws `AssertionError`.',
|
|
15865
15881
|
examples: [
|
|
15866
|
-
'try
|
|
15867
|
-
'try
|
|
15868
|
-
'try
|
|
15882
|
+
'try assert-true(false, "Expected true") catch (e) e.message end',
|
|
15883
|
+
'try assert-true(false) catch (e) e.message end',
|
|
15884
|
+
'try assert-true(true) catch (e) e.message end',
|
|
15869
15885
|
],
|
|
15870
15886
|
noOperatorDocumentation: true,
|
|
15871
15887
|
},
|
|
@@ -15889,9 +15905,9 @@ var assertReference = {
|
|
|
15889
15905
|
],
|
|
15890
15906
|
description: 'If $value is not `false` it throws `AssertionError`.',
|
|
15891
15907
|
examples: [
|
|
15892
|
-
'try
|
|
15893
|
-
'try
|
|
15894
|
-
'try
|
|
15908
|
+
'try assert-false(true, "Expected false") catch (e) e.message end',
|
|
15909
|
+
'try assert-false(true) catch (e) e.message end',
|
|
15910
|
+
'try assert-false(false) catch (e) e.message end',
|
|
15895
15911
|
],
|
|
15896
15912
|
noOperatorDocumentation: true,
|
|
15897
15913
|
},
|
|
@@ -15915,16 +15931,16 @@ var assertReference = {
|
|
|
15915
15931
|
],
|
|
15916
15932
|
description: 'If $value is not `truthy` it throws `AssertionError`.',
|
|
15917
15933
|
examples: [
|
|
15918
|
-
'try
|
|
15919
|
-
'try
|
|
15920
|
-
'try
|
|
15921
|
-
'try
|
|
15922
|
-
'try
|
|
15923
|
-
'try
|
|
15924
|
-
'try
|
|
15925
|
-
'try
|
|
15926
|
-
'try
|
|
15927
|
-
'try
|
|
15934
|
+
'try assert-truthy(false, "Expected truthy") catch (e) e.message end',
|
|
15935
|
+
'try assert-truthy(false) catch (e) e.message end',
|
|
15936
|
+
'try assert-truthy(0) catch (e) e.message end',
|
|
15937
|
+
'try assert-truthy(null) catch (e) e.message end',
|
|
15938
|
+
'try assert-truthy("") catch (e) e.message end',
|
|
15939
|
+
'try assert-truthy(true) catch (e) e.message end',
|
|
15940
|
+
'try assert-truthy(1) catch (e) e.message end',
|
|
15941
|
+
'try assert-truthy("x") catch (e) e.message end',
|
|
15942
|
+
'try assert-truthy([]) catch (e) e.message end',
|
|
15943
|
+
'try assert-truthy(nd) catch (e) e.message end',
|
|
15928
15944
|
],
|
|
15929
15945
|
noOperatorDocumentation: true,
|
|
15930
15946
|
},
|
|
@@ -15948,15 +15964,15 @@ var assertReference = {
|
|
|
15948
15964
|
],
|
|
15949
15965
|
description: 'If $value is not `falsy` it throws `AssertionError`.',
|
|
15950
15966
|
examples: [
|
|
15951
|
-
'try
|
|
15952
|
-
'try
|
|
15953
|
-
'try
|
|
15954
|
-
'try
|
|
15955
|
-
'try
|
|
15956
|
-
'try
|
|
15957
|
-
'try
|
|
15958
|
-
'try
|
|
15959
|
-
'try
|
|
15967
|
+
'try assert-falsy(true, "Expected falsy") catch (e) e.message end',
|
|
15968
|
+
'try assert-falsy("x") catch (e) e.message end',
|
|
15969
|
+
'try assert-falsy([]) catch (e) e.message end',
|
|
15970
|
+
'try assert-falsy(nd) catch (e) e.message end',
|
|
15971
|
+
'try assert-falsy(1) catch (e) e.message end',
|
|
15972
|
+
'try assert-falsy(false) catch (e) e.message end',
|
|
15973
|
+
'try assert-falsy(0) catch (e) e.message end',
|
|
15974
|
+
'try assert-falsy(null) catch (e) e.message end',
|
|
15975
|
+
'try assert-falsy("") catch (e) e.message end',
|
|
15960
15976
|
],
|
|
15961
15977
|
noOperatorDocumentation: true,
|
|
15962
15978
|
},
|
|
@@ -15980,15 +15996,15 @@ var assertReference = {
|
|
|
15980
15996
|
],
|
|
15981
15997
|
description: 'If $value is not `null` it throws `AssertionError`.',
|
|
15982
15998
|
examples: [
|
|
15983
|
-
'try
|
|
15984
|
-
'try
|
|
15985
|
-
'try
|
|
15986
|
-
'try
|
|
15987
|
-
'try
|
|
15988
|
-
'try
|
|
15989
|
-
'try
|
|
15990
|
-
'try
|
|
15991
|
-
'try
|
|
15999
|
+
'try assert-null(null) catch (e) e.message end',
|
|
16000
|
+
'try assert-null(true, "Expected null") catch (e) e.message end',
|
|
16001
|
+
'try assert-null("x") catch (e) e.message end',
|
|
16002
|
+
'try assert-null([]) catch (e) e.message end',
|
|
16003
|
+
'try assert-null(nd) catch (e) e.message end',
|
|
16004
|
+
'try assert-null(1) catch (e) e.message end',
|
|
16005
|
+
'try assert-null(false) catch (e) e.message end',
|
|
16006
|
+
'try assert-null(0) catch (e) e.message end',
|
|
16007
|
+
'try assert-null("") catch (e) e.message end',
|
|
15992
16008
|
],
|
|
15993
16009
|
noOperatorDocumentation: true,
|
|
15994
16010
|
},
|
|
@@ -16013,7 +16029,7 @@ var assertReference = {
|
|
|
16013
16029
|
description: 'If $fun does not throw, it throws `AssertionError`.',
|
|
16014
16030
|
examples: [
|
|
16015
16031
|
'assert-throws(-> throw("Error"))',
|
|
16016
|
-
'try
|
|
16032
|
+
'try assert-throws(-> identity("Error")) catch (e) e.message end',
|
|
16017
16033
|
],
|
|
16018
16034
|
noOperatorDocumentation: true,
|
|
16019
16035
|
},
|
|
@@ -16040,8 +16056,8 @@ var assertReference = {
|
|
|
16040
16056
|
],
|
|
16041
16057
|
description: 'If $fun does not throw $error-message, it throws `AssertionError`.',
|
|
16042
16058
|
examples: [
|
|
16043
|
-
'try
|
|
16044
|
-
'try
|
|
16059
|
+
'try assert-throws-error(-> throw("Error"), "Error") catch (e) e.message end',
|
|
16060
|
+
'try assert-throws-error(-> identity("Error"), "Error") catch (e) e.message end',
|
|
16045
16061
|
],
|
|
16046
16062
|
noOperatorDocumentation: true,
|
|
16047
16063
|
},
|
|
@@ -16065,8 +16081,8 @@ var assertReference = {
|
|
|
16065
16081
|
],
|
|
16066
16082
|
description: 'If $fun throws, it throws `AssertionError`.',
|
|
16067
16083
|
examples: [
|
|
16068
|
-
'try
|
|
16069
|
-
'try
|
|
16084
|
+
'try assert-not-throws(-> identity("Error")) catch (e) e.message end',
|
|
16085
|
+
'try assert-not-throws(-> throw("Error")) catch (e) e.message end',
|
|
16070
16086
|
],
|
|
16071
16087
|
noOperatorDocumentation: true,
|
|
16072
16088
|
},
|
|
@@ -26633,6 +26649,50 @@ var sequenceReference = {
|
|
|
26633
26649
|
};
|
|
26634
26650
|
|
|
26635
26651
|
var specialExpressionsReference = {
|
|
26652
|
+
'doseq': {
|
|
26653
|
+
title: 'doseq',
|
|
26654
|
+
category: 'Special expression',
|
|
26655
|
+
customVariants: ['doseq (...binding) -> body'],
|
|
26656
|
+
details: [
|
|
26657
|
+
['binding', 'loop-var in collection [...let-binding] [where whereExpr] [while whileExp]', 'A doseq loop binding'],
|
|
26658
|
+
['loop-var', 'symbol', 'The name of the loop variable.'],
|
|
26659
|
+
['collection', 'any', 'The collection to iterate over.'],
|
|
26660
|
+
['let-binding', 'let binding', 'A let binding to create a local variable.'],
|
|
26661
|
+
['whereExpr', 'expression', 'An expression that must evaluate to truthy for the loop body to be executed.'],
|
|
26662
|
+
['whileExp', 'expression', 'An expression that must evaluate to truthy for the loop to continue.'],
|
|
26663
|
+
['body', 'expressions', 'The expressions to evaluate for each iteration of the loop.'],
|
|
26664
|
+
],
|
|
26665
|
+
returns: {
|
|
26666
|
+
type: 'null',
|
|
26667
|
+
},
|
|
26668
|
+
description: 'Iterates over `bindings`, evaluates `body` for each `binding` and returns `null`. This is useful for side effects.',
|
|
26669
|
+
examples: [
|
|
26670
|
+
"\ndoseq (i in [1, 2, 3]) -> write!(i * 2)\n ",
|
|
26671
|
+
],
|
|
26672
|
+
},
|
|
26673
|
+
'for': {
|
|
26674
|
+
title: 'for',
|
|
26675
|
+
category: 'Special expression',
|
|
26676
|
+
customVariants: ['for (...binding) -> body'],
|
|
26677
|
+
details: [
|
|
26678
|
+
['binding', 'loop-var in collection [...let-binding] [where whereExpr] [while whileExp]', 'A for loop binding'],
|
|
26679
|
+
['loop-var', 'symbol', 'The name of the loop variable.'],
|
|
26680
|
+
['collection', 'any', 'The collection to iterate over.'],
|
|
26681
|
+
['let-binding', 'let binding', 'A let binding to create a local variable.'],
|
|
26682
|
+
['whereExpr', 'expression', 'An expression that must evaluate to truthy for the loop body to be executed.'],
|
|
26683
|
+
['whileExp', 'expression', 'An expression that must evaluate to truthy for the loop to continue.'],
|
|
26684
|
+
['body', 'expressions', 'The expressions to evaluate for each iteration of the loop.'],
|
|
26685
|
+
],
|
|
26686
|
+
returns: {
|
|
26687
|
+
type: 'any',
|
|
26688
|
+
array: true,
|
|
26689
|
+
},
|
|
26690
|
+
description: 'Iterates over `bindings`, evaluates `body` for each `binding` and returns an `array` of results.',
|
|
26691
|
+
examples: [
|
|
26692
|
+
"\nfor (i in [1, 2, 3]) -> i * 2\n ",
|
|
26693
|
+
"\nfor (\n i in range(10) let ii = i ^ 2 while ii < 40 when ii % 3 == 0,\n j in range(10) when j % 2 == 1\n) -> ii + j\n ",
|
|
26694
|
+
],
|
|
26695
|
+
},
|
|
26636
26696
|
'array': {
|
|
26637
26697
|
title: 'array',
|
|
26638
26698
|
category: 'Special expression',
|
|
@@ -26757,9 +26817,9 @@ var specialExpressionsReference = {
|
|
|
26757
26817
|
],
|
|
26758
26818
|
description: 'Executes `try-body`. If that throws, the `catch-body` gets executed. See examples for details.',
|
|
26759
26819
|
examples: [
|
|
26760
|
-
"\ntry
|
|
26761
|
-
"\ntry
|
|
26762
|
-
"\ntry
|
|
26820
|
+
"\ntry\n 2 / 4\ncatch\n \"Oops!\"\nend",
|
|
26821
|
+
"\ntry\n foo()\ncatch(error)\n \"Error: \" ++ error.message\nend",
|
|
26822
|
+
"\ntry\n foo()\ncatch\n 42\nend",
|
|
26763
26823
|
],
|
|
26764
26824
|
},
|
|
26765
26825
|
'throw': {
|
|
@@ -26778,8 +26838,8 @@ var specialExpressionsReference = {
|
|
|
26778
26838
|
],
|
|
26779
26839
|
description: 'Throws `UserDefinedError` with message set to $expr evaluated. $expr must evaluate to a string.',
|
|
26780
26840
|
examples: [
|
|
26781
|
-
'try
|
|
26782
|
-
'try
|
|
26841
|
+
'try throw("You shall not pass!") catch(error) "Error: " ++ error.message end',
|
|
26842
|
+
'try throw(slice("You shall not pass!", 0, 3)) catch(error) "Error: " ++ error.message end',
|
|
26783
26843
|
],
|
|
26784
26844
|
},
|
|
26785
26845
|
'if': {
|
|
@@ -30925,7 +30985,7 @@ var datatype = {
|
|
|
30925
30985
|
title: 'never',
|
|
30926
30986
|
category: 'Datatype',
|
|
30927
30987
|
description: 'A value that can never be created',
|
|
30928
|
-
examples: ["\n// throw(\"error\") will never return a value\ntry
|
|
30988
|
+
examples: ["\n// throw(\"error\") will never return a value\ntry throw(\"error\") catch \"never\" end",
|
|
30929
30989
|
],
|
|
30930
30990
|
},
|
|
30931
30991
|
};
|