Allow script arrays to hold any value type, add script engine tests, archive old rpg code

Remove the per-array type category so arrays can mix types like structs.
Add 13 passing and 125 expected-failure duskscript test fixtures with a
table-driven runner. Also includes the in-progress entity/physics and
archive moves from the working tree.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
YourWishesandClaude Sonnet 5.5 committed 2026-10-14 23:25:26 -05:00
1 parent 5c259e46e2
commit f6b884bf7f
710 files changed
+6172 -27594

No files matched your search

@@ -0,0 +1 @@
abs("a");
+1
View File
@@ -0,0 +1 @@
var r = [1] + 1;
+1
View File
@@ -0,0 +1 @@
var r = true + 1;
+1
View File
@@ -0,0 +1 @@
var r = 1 + null;
@@ -0,0 +1,4 @@
var a = [];
for(var i = 0; i < 513; i++) {
push(a, i);
}
@@ -0,0 +1,3 @@
var a = [];
fill(a, 0, 400);
merge(a, a);
@@ -0,0 +1 @@
assert("");
@@ -0,0 +1 @@
assert(false);
@@ -0,0 +1 @@
assert();
@@ -0,0 +1 @@
assert(null);
@@ -0,0 +1 @@
assert(0);
@@ -0,0 +1,4 @@
async function f() {
assert(false);
}
await f();
@@ -0,0 +1,7 @@
async function inner() {
return 1 / 0;
}
async function outer() {
return await inner();
}
await outer();
@@ -0,0 +1,2 @@
var s = "a";
var r = s & 1;
@@ -0,0 +1,2 @@
var s = {};
s.f();
+2
View File
@@ -0,0 +1,2 @@
var n = null;
n();
@@ -0,0 +1,2 @@
var n = 5;
n();
@@ -0,0 +1,3 @@
map([1], function(v) {
assert(false);
});
@@ -0,0 +1 @@
chr(65.5);
@@ -0,0 +1 @@
chr(256);
+1
View File
@@ -0,0 +1 @@
chr(0);
@@ -0,0 +1 @@
var r = 1 < "a";
@@ -0,0 +1 @@
var r = null > 1;
@@ -0,0 +1 @@
var r = "a" < "b";
@@ -0,0 +1,3 @@
const LIST = [1];
var alias = LIST;
alias[0] = 2;
@@ -0,0 +1,2 @@
const LIST = [1];
pop(LIST);
@@ -0,0 +1,2 @@
const LIST = [1];
push(LIST, 2);
@@ -0,0 +1,2 @@
const LIST = [2, 1];
sort(LIST);
@@ -0,0 +1,3 @@
const CFG = {a: 1};
var alias = CFG;
alias.a = 2;
@@ -0,0 +1,3 @@
const CFG = {a: 1};
var alias = CFG;
alias.b = 2;
@@ -0,0 +1 @@
contains("abc", 1);
@@ -0,0 +1,3 @@
var a = [];
push(a, a);
deepclone(a);
@@ -0,0 +1,3 @@
var s = {};
s.self = s;
deepclone(s);
+2
View File
@@ -0,0 +1,2 @@
var z = 0;
var r = 1 / z;
@@ -0,0 +1,3 @@
print("before");
assert(false);
print("after");
@@ -0,0 +1,7 @@
var total = 0;
for(var i = 0; i < 10; i++) {
total += i;
if(i == 5) {
assert(false);
}
}
@@ -0,0 +1,5 @@
function f() {
var a = [];
return a[0];
}
f();
@@ -0,0 +1,7 @@
function inner() {
return 1 / 0;
}
function outer() {
return inner();
}
outer();
@@ -0,0 +1 @@
fill([], 0, -1);
@@ -0,0 +1 @@
fill([], 0, 513);
@@ -0,0 +1 @@
filter([1], 5);
@@ -0,0 +1 @@
flatten([1]);
@@ -0,0 +1,2 @@
foreach(var v : null) {
}
@@ -0,0 +1,2 @@
foreach(var v : 5) {
}
@@ -0,0 +1,2 @@
foreach(var v : {a: 1}) {
}
@@ -0,0 +1 @@
include("definitely_not_a_script.dsb");
@@ -0,0 +1,2 @@
var a = [1];
a[-1] = 2;
@@ -0,0 +1,2 @@
var a = [1];
a[5] = 2;
@@ -0,0 +1,2 @@
var a = [1, 2];
var r = a[0.5];
@@ -0,0 +1,2 @@
var a = [1, 2];
var r = a[-1];
@@ -0,0 +1,2 @@
var n = 5;
var r = n[0];
@@ -0,0 +1,2 @@
var a = [1, 2];
var r = a[2];
@@ -0,0 +1,2 @@
var a = [1, 2];
var r = a["x"];
@@ -0,0 +1 @@
indexof(5, 1);
@@ -0,0 +1 @@
indexof("abc", "ab");
@@ -0,0 +1 @@
insert([1], -1, 0);
@@ -0,0 +1 @@
insert([1], 5, 0);
@@ -0,0 +1 @@
insertarr([1], 5, [0]);
@@ -0,0 +1,2 @@
var s = "a";
var r = ~s;
@@ -0,0 +1 @@
join(5, ",");
@@ -0,0 +1 @@
join([1], 5);
+1
View File
@@ -0,0 +1 @@
len(null);
@@ -0,0 +1 @@
len(5);
@@ -0,0 +1 @@
map(5, function(v) { return v; });
@@ -0,0 +1 @@
map([1], 5);
@@ -0,0 +1,2 @@
var n = null;
var r = n.x;
@@ -0,0 +1,2 @@
var n = 5;
var r = n.x;
@@ -0,0 +1 @@
min("a", 1);
@@ -0,0 +1,4 @@
function f(a) {
return a;
}
f();
@@ -0,0 +1,4 @@
function f(a, b) {
return a + b;
}
f(1);
+2
View File
@@ -0,0 +1,2 @@
var z = 0;
var r = 5 % z;
@@ -0,0 +1 @@
var r = "a" * 2;
@@ -0,0 +1,7 @@
function a(n) {
return b(n);
}
function b(n) {
return a(n);
}
a(0);
@@ -0,0 +1,2 @@
var s = "a";
var r = -s;
@@ -0,0 +1 @@
pop("abc");
@@ -0,0 +1 @@
pow(2, 0.5);
@@ -0,0 +1 @@
push("abc", "d");
@@ -0,0 +1 @@
rand(5, 1);
@@ -0,0 +1 @@
rand(5, 5);
@@ -0,0 +1 @@
rand(1.5, 3);
@@ -0,0 +1 @@
randf(1, 1);
@@ -0,0 +1,4 @@
function f(n) {
return f(n + 1);
}
f(0);
@@ -0,0 +1 @@
reduce([1], 5, 0);
@@ -0,0 +1 @@
reverse("abc");
@@ -0,0 +1 @@
sort([2, 1], false, function(a, b) { return "x"; });
@@ -0,0 +1 @@
sort([1, "a"]);
@@ -0,0 +1 @@
sort(5);
@@ -0,0 +1 @@
sort([{a: 1}, {a: 2}]);
@@ -0,0 +1 @@
splice([1], 0, -1);
@@ -0,0 +1 @@
splice([1], 5);
@@ -0,0 +1 @@
split(5, ",");
@@ -0,0 +1 @@
sqrt(-1);
@@ -0,0 +1,2 @@
var s = "abc";
s[0] = "x";
@@ -0,0 +1,2 @@
var s = "abc";
var r = s[3];
@@ -0,0 +1,4 @@
var s = "x";
for(var i = 0; i < 10; i++) {
s = s + s;
}
@@ -0,0 +1,2 @@
var s = {a: 1};
var r = s[1];
@@ -0,0 +1,2 @@
var s = {a: 1};
s[1] = 2;
@@ -0,0 +1,4 @@
var s = {};
for(var i = 0; i < 17; i++) {
s["k" + i] = i;
}
@@ -0,0 +1 @@
var r = "a" - 1;
@@ -0,0 +1 @@
subarr([1, 2], 2, 1);
Loaded 100 of 710 files, more files were not shown because too many files have changed in this diff. Show more