fix all core script syntax issues

This commit is contained in:
2026-02-17 11:23:12 -06:00
parent 2d054fcf21
commit 12b6c3544e
30 changed files with 910 additions and 897 deletions

View File

@@ -8,26 +8,34 @@ function stone_if_needed(b) { if (!stone.p(b)) stone(b) }
function bytes_to_blob(bytes) {
var b = blob()
for (var i = 0; i < length(bytes); i++) {
var byte = bytes[i]
for (var bit = 7; bit >= 0; bit--) b.write_bit((byte >> bit) & 1)
var i = 0
var byte = null
var bit = null
for (i = 0; i < length(bytes); i++) {
byte = bytes[i]
for (bit = 7; bit >= 0; bit--) b.write_bit((byte >> bit) & 1)
}
stone(b)
return b
}
function deepCompare(expected, actual, path) {
path = path || ''
function deepCompare(expected, actual, _path) {
var diff = null
var messages = null
var expKeys = null
var actKeys = null
var i = 0
var path = _path || ''
if (expected == actual) return { passed: true, messages: [] };
if (is_number(expected) && is_number(actual)) {
if (isNaN(expected) && isNaN(actual))
return { passed: true, messages: [] };
var diff = abs(expected - actual);
diff = abs(expected - actual);
if (diff <= EPSILON)
return { passed: true, messages: [] };
return {
passed: false,
messages: [
@@ -41,7 +49,7 @@ function deepCompare(expected, actual, path) {
stone_if_needed(expected); stone_if_needed(actual)
if (length(expected) != length(actual))
return { passed: false, messages: [`blob length mismatch at ${path}: ${length(expected)} vs ${length(actual)}`] }
for (var i = 0; i < length(expected); i++) {
for (i = 0; i < length(expected); i++) {
if (expected.read_logical(i) != actual.read_logical(i))
return { passed: false, messages: [`blob bit mismatch at ${path}[${i}]`] }
}
@@ -54,7 +62,7 @@ function deepCompare(expected, actual, path) {
passed: false,
messages: [`Array length mismatch at ${path}: expected ${length(expected)}, got ${length(actual)}`]
};
var messages = [];
messages = [];
arrfor(expected, function(val, i) {
var result = deepCompare(val, actual[i], `${path}[${i}]`);
if (!result.passed)
@@ -64,17 +72,17 @@ function deepCompare(expected, actual, path) {
}
if (is_object(expected) && is_object(actual)) {
var expKeys = sort(array(expected))
var actKeys = sort(array(actual))
expKeys = sort(array(expected))
actKeys = sort(array(actual))
if (JSON.stringify(expKeys) != JSON.stringify(actKeys))
return {
passed: false,
messages: [`Object keys mismatch at ${path}: expected ${expKeys}, got ${actKeys}`]
};
var messages = [];
messages = [];
arrfor(expKeys, function(key) {
var result = deepCompare(expected[key], actual[key], `${path}.${key}`);
if (!result.passed)
if (!result.passed)
messages = array(messages, result.messages)
})
return { passed: length(messages) == 0, messages: messages };
@@ -89,26 +97,32 @@ function deepCompare(expected, actual, path) {
function makeTest(test) {
return function() {
var encoded = test.replacer ? nota.encode(test.input, test.replacer) : nota.encode(test.input);
if (!is_blob(encoded)){
throw "encode() should return blob";
var decoded = null
var expected = null
var key = null
var compareResult = null
if (!is_blob(encoded)) {
disrupt
}
var decoded = test.reviver ? nota.decode(encoded, test.reviver) : nota.decode(encoded);
var expected = test.expected || test.input;
decoded = test.reviver ? nota.decode(encoded, test.reviver) : nota.decode(encoded);
expected = test.expected || test.input;
if (expected && (expected.private || expected.system)) {
var key = expected.private ? 'private' : 'system';
key = expected.private ? 'private' : 'system';
expected = { [key]: expected[key] };
}
var compareResult = deepCompare(expected, decoded);
compareResult = deepCompare(expected, decoded);
if (!compareResult.passed) {
throw text(compareResult.messages, '; ');
disrupt
}
};
}
var testarr = []
for (var i = 0; i < 500; i++) {
var i = 0
var t = null
for (i = 0; i < 500; i++) {
push(testarr, 1)
}
@@ -172,8 +186,8 @@ var testCases = [
];
var tests = {};
for (var i = 0; i < length(testCases); i++) {
var t = testCases[i];
for (i = 0; i < length(testCases); i++) {
t = testCases[i];
tests[t.name] = makeTest(t);
}