Something went wrong. Try again.
javascript for 🐜's, a tiny runtime with big ambitions antjs.org
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354const assert = require('node:assert');
function min(a, b) { return Math.min(a, b); }for (let i = 0; i < 20000; i++) assert.strictEqual(min(i, 500), i < 500 ? i : 500);assert.strictEqual(Math.min(), Infinity);assert.strictEqual(Math.min(Infinity, -Infinity), -Infinity);assert.strictEqual(Object.is(min(0, -0), -0), true);assert.strictEqual(Object.is(min(-0, 0), -0), true);assert.strictEqual(Number.isNaN(min(NaN, 1)), true);assert.strictEqual(Number.isNaN(min(1, NaN)), true);assert.strictEqual(min('3', 4), 3);assert.strictEqual(min(4, { valueOf() { return 2; } }), 2);const failure = { marker: 'conversion failure' };const throwing = { valueOf() { throw failure; } };assert.throws(() => min(throwing, 1), error => error === failure);assert.throws(() => min(1, throwing), error => error === failure);assert.strictEqual(min(3, 4), 3);
function pop(array) { return array.pop(); }for (let round = 0; round < 160; round++) { const values = Array.from({ length: 128 }, (_, i) => ({ i })); for (let i = 127; i >= 0; i--) { assert.strictEqual(pop(values).i, i); assert.strictEqual(values.length, i); assert.strictEqual(Object.hasOwn(values, i), false); } assert.strictEqual(pop(values), undefined); values.push(42); assert.strictEqual(pop(values), 42);}const holes = [1, , 3];assert.strictEqual(pop(holes), 3);assert.strictEqual(pop(holes), undefined);assert.strictEqual(pop(holes), 1);const sparse = [1];sparse.length = 10000;sparse[9999] = 7;assert.strictEqual(pop(sparse), 7);assert.strictEqual(sparse.length, 9999);assert.strictEqual(pop(sparse), undefined);const object = { 0: 5, length: 1 };assert.strictEqual(Array.prototype.pop.call(object), 5);assert.strictEqual(object.length, 0);const target = [1, 2];assert.strictEqual(pop(new Proxy(target, {})), 2);assert.strictEqual(target.length, 1);assert.throws(() => pop(new Proxy([1], { get(target, key, receiver) { if (key === '0') throw failure; return Reflect.get(target, key, receiver); },})), error => error === failure);console.log('native numeric and array paths passed');