@mojir/lits 2.1.3 → 2.1.4

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.
@@ -674,6 +674,10 @@ function isLitsFunction(value) {
674
674
  return false;
675
675
  return !!value[FUNCTION_SYMBOL];
676
676
  }
677
+ function asLitsFunction(value, sourceCodeInfo) {
678
+ assertLitsFunction(value, sourceCodeInfo);
679
+ return value;
680
+ }
677
681
  function assertLitsFunction(value, sourceCodeInfo) {
678
682
  if (!isLitsFunction(value))
679
683
  throw getAssertionError('LitsFunction', value, sourceCodeInfo);
@@ -1362,26 +1366,37 @@ var sequenceNormalExpression = {
1362
1366
  paramCount: 1,
1363
1367
  },
1364
1368
  'map': {
1365
- evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
1366
- var _c = __read(_a, 2), seq = _c[0], fn = _c[1];
1367
- var executeFunction = _b.executeFunction;
1368
- assertSeq(seq, sourceCodeInfo);
1369
- assertLitsFunction(fn, sourceCodeInfo);
1370
- if (Array.isArray(seq)) {
1371
- return seq.map(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
1369
+ evaluate: function (params, sourceCodeInfo, contextStack, _a) {
1370
+ var executeFunction = _a.executeFunction;
1371
+ var fn = asLitsFunction(params.at(-1));
1372
+ var seqs = params.slice(0, -1);
1373
+ assertSeq(seqs[0], sourceCodeInfo);
1374
+ var isString = typeof seqs[0] === 'string';
1375
+ var len = seqs[0].length;
1376
+ seqs.slice(1).forEach(function (seq) {
1377
+ if (isString) {
1378
+ assertString(seq, sourceCodeInfo);
1379
+ }
1380
+ else {
1381
+ assertArray(seq, sourceCodeInfo);
1382
+ }
1383
+ len = Math.min(len, seq.length);
1384
+ });
1385
+ var paramArray = [];
1386
+ var _loop_1 = function (i) {
1387
+ paramArray.push(seqs.map(function (seq) { return seq[i]; }));
1388
+ };
1389
+ for (var i = 0; i < len; i++) {
1390
+ _loop_1(i);
1372
1391
  }
1373
- else {
1374
- return seq
1375
- .split('')
1376
- .map(function (elem) {
1377
- var newVal = executeFunction(fn, [elem], contextStack, sourceCodeInfo);
1378
- assertString(newVal, sourceCodeInfo, { char: true });
1379
- return newVal;
1380
- })
1381
- .join('');
1392
+ var mapped = paramArray.map(function (p) { return executeFunction(fn, p, contextStack, sourceCodeInfo); });
1393
+ if (!isString) {
1394
+ return mapped;
1382
1395
  }
1396
+ mapped.forEach(function (char) { return assertString(char, sourceCodeInfo); });
1397
+ return mapped.join('');
1383
1398
  },
1384
- paramCount: 2,
1399
+ paramCount: { min: 2 },
1385
1400
  },
1386
1401
  'pop': {
1387
1402
  evaluate: function (_a, sourceCodeInfo) {
@@ -1931,7 +1946,7 @@ var sequenceNormalExpression = {
1931
1946
  assertSeq(input, sourceCodeInfo);
1932
1947
  if (Array.isArray(input)) {
1933
1948
  var result = [];
1934
- var _loop_1 = function (item) {
1949
+ var _loop_2 = function (item) {
1935
1950
  assertAny(item, sourceCodeInfo);
1936
1951
  if (!result.some(function (existingItem) { return deepEqual(existingItem, item, sourceCodeInfo); })) {
1937
1952
  result.push(item);
@@ -1940,7 +1955,7 @@ var sequenceNormalExpression = {
1940
1955
  try {
1941
1956
  for (var input_1 = __values(input), input_1_1 = input_1.next(); !input_1_1.done; input_1_1 = input_1.next()) {
1942
1957
  var item = input_1_1.value;
1943
- _loop_1(item);
1958
+ _loop_2(item);
1944
1959
  }
1945
1960
  }
1946
1961
  catch (e_2_1) { e_2 = { error: e_2_1 }; }