more detail on broken pipeline and vm suit tests

This commit is contained in:
2026-02-15 11:51:23 -06:00
parent ee646db394
commit 7de20b39da
16 changed files with 16527 additions and 15432 deletions

View File

@@ -4935,6 +4935,82 @@ run("object literal 300 function values returned from function", function() {
}
})
// ============================================================================
// NESTED FUNCTION DECLARATIONS
// ============================================================================
run("nested named function basic", function() {
function inner(x) {
return x + 1
}
assert_eq(inner(41), 42, "nested named function call")
})
run("nested named function used by sibling", function() {
function helper(v) {
return v * 2
}
function caller(v) {
return helper(v) + 1
}
assert_eq(caller(5), 11, "sibling nested function call")
})
run("nested named function in var function", function() {
var outer = function() {
function inner(a, b) {
return a + b
}
return inner(10, 20)
}
assert_eq(outer(), 30, "nested function inside var function")
})
run("nested named function with closure", function() {
var multiplier = 3
function scale(x) {
return x * multiplier
}
assert_eq(scale(7), 21, "nested function closing over outer var")
})
run("nested named function recursive", function() {
function factorial(n) {
if (n <= 1) return 1
return n * factorial(n - 1)
}
assert_eq(factorial(5), 120, "nested recursive function")
})
run("deeply nested named functions", function() {
var outer = function() {
function mid(x) {
function inner(y) {
return y + 1
}
return inner(x) * 2
}
return mid(4)
}
assert_eq(outer(), 10, "deeply nested named functions")
})
run("nested function used after definition", function() {
var result = []
function encode_value(v) {
if (is_text(v)) return '"' + v + '"'
if (is_number(v)) return text(v)
return "null"
}
function quote_key(k) {
return k
}
result[] = quote_key("a") + " = " + encode_value(1)
result[] = quote_key("b") + " = " + encode_value("hi")
assert_eq(result[0], "a = 1", "nested fn encode number")
assert_eq(result[1], 'b = "hi"', "nested fn encode text")
})
// ============================================================================
// SUMMARY
// ============================================================================