Files
scriptc/tests/corpus/119-native-patterns.js

25 lines
870 B
JavaScript

'use strict';
const collect = function (items) {
const iterator = items[Symbol.iterator]();
const result = [];
for (;;) {
const next = iterator.next();
if (next.done) return result;
result.push(next.value);
}
};
console.log(JSON.stringify(collect([1, 2, 3])));
console.log(JSON.stringify([1, 2].flatMap((value) => [value, value + 10])));
console.log(JSON.stringify(JSON.parse("[1,2]").flatMap((value) => [value, value + 10])));
const adapt = ([value]) => value;
const stored = adapt;
console.log(stored(['kept', 'surplus'], 'extra'));
function errorBase() {
return class extends Error {
constructor(value) { super(value.message); this.reason = value.reason; }
};
}
class Failure extends errorBase() {}
const failure = new Failure({ message: 'broken', reason: 'test' });
console.log(failure.message, failure.reason, failure instanceof Error);