Files
Landon Curt Noll 09750f8899 release winning entries of IOCCC28 under the year 2024
Congratulations to:

* 2024/anders - Prize in sound coding - layered music generator
* 2024/burton - Prize in pentagrammatology - wordle hard mode solver
* 2024/cable1 - Prize in bot talk - LLM inference engine
* 2024/cable2 - Prize in murky waters - salmon recipe
* 2024/carlini - Prize in perfect timing - Intel 4004 emulation
* 2024/codemeow - Prize in tray planting - bonsai generator
* 2024/endoh1 - Prize in patient pointillism - slow ray tracer in CPP
* 2024/endoh2 - Prize in solid body physics - rotating rigid body simulation
* 2024/ferguson1 - Prize in diabolical logistics - Oregon trail pact with the devil
* 2024/ferguson2 - Prize in yil-tas - Navajo code talker translator
* 2024/howe - Nice accent eh-ward - mini vi
* 2024/kramer - Prize in linguistic arithmetic - natural language numerical calculator
* 2024/kurdyukov1 - Prize in phased periodicity - phase of the Moon
* 2024/kurdyukov2 - Prize in art restoration - JPEG artifact removal
* 2024/kurdyukov3 - Prize in virtual quietus - gaming VM and doom
* 2024/kurdyukov4 - Prize in embiggening - encode without literals
* 2024/maffiodo - Prize in creative interpretation - Jav\*script interpreter
* 2024/mills - Prize in ℤ₃ - Infocom v3 story interpreter
* 2024/stedolan - Best one liner - icon from MD5
* 2024/straadt - Prize in imitative rebooting - OpenRISC CPU and Linux
* 2024/tmarrec - Prize in cyclonic coding - 3D tornado simulation
* 2024/tompng - Prize in quasi bijection - vortex encryptor decryptor
* 2024/weaver - Sur prize - rickroll

Ran `make update` to perform the above.
 	new file:   2024/burton/.entry.json
2025-08-02 14:43:07 -07:00

72 lines
2.0 KiB
JavaScript

var testCounter = 0;
var verify = function () {
var src = '{' + arguments[0] + '}';
print("test " + testCounter + ": " + src + " ");
testCounter += 1;
var expected = arguments[1];
var res = eval(src);
if (res == expected) {
print("\x1b[32;1mOK\x1b[0m");
} else {
print("\x1b[31;1mKO\x1b[0m");
}
print(" (exp=" + expected + " res=" + res + ")\n");
};
var x = 0;
verify(";", "[object]");
verify("; 2; 3", "3");
verify("2*(2+3)-1", 9);
verify("'' + 32", "32");
verify("\"\" + 32", "32");
verify("x + 32", 32);
verify("x = 3", 3);
verify("x", 3);
verify("var y = 11", 11);
verify("var y = 11, z = 22", 22);
verify("var foo = function () { 2; }; return foo;", "{ 2; }");
verify("' 1 2 \\n 23 \\' '", " 1 2 \n 23 \' ");
verify(" 'hello' == 'hello'; ", 1);
verify(" 'hello' == 'hello2'; ", 0);
verify(" 'hello' != 'hello2'; ", 1);
verify(" '32' == 32; ", 1);
verify(" '32' == 33; ", 0);
verify(" '32' <= 33; ", 1);
verify(" '32' <= 2; ", 0);
verify(" '2' >= 32; ", 0);
verify(" '32' >= 2; ", 1);
verify(" 32 == 32; ", 1);
verify(" 32 >= 0; ", 1);
verify(" 0 <= 32; ", 1);
verify(" 1+4 && 3-3; ", 0);
verify(" 1+4 || 3-3; ", 1);
verify(" 1<<3; ", 8);
verify(" 8>>3; ", 1);
verify(" -6; ", -6);
verify(" +'6'; ", 6);
verify(" ~'6'; ", -7);
verify(" !'6'; ", 0);
verify(" !'0'; ", 1);
verify(" !(1 && 2); ", 0);
verify(" 0.1 + 0.2 == 0.3; ", 1); // this is different from nodejs!! <<<<<<<<<<
verify(" 'hello'.length; ", 5);
verify(" [].length; ", 0);
verify(" {}.length; ", 0); // this is strange but usefull? <<<<<<<<<<<<<<<<<<<<
var obj = {};
verify("obj.abc = 32;", 32);
verify("obj[0] = 2; ", 2);
verify("obj[0]; ", 2);
verify("obj[1] = {}; ", "[object]");
verify("obj[1].temp = 123; ", 123);
verify("obj[1].temp; ", 123);
verify("'abc'[0];", "a");
verify("'1+2'();", 3);
verify("0 || 'hello'", 0);
verify("0 || '1hello'", 1);
verify("; 2; 3;", 3);
verify("{ { 1; }; }; 2; {{3;}}", 3);
verify("{ { return 1; } } 2; 3", 1);
verify("var strt = '' + 32", "32");
verify("var strt = \"\" + 32", "32");