rm block scope

This commit is contained in:
2026-02-09 10:11:22 -06:00
parent 7469383e66
commit 0503acb7e6
6 changed files with 91 additions and 284 deletions

View File

@@ -7,7 +7,8 @@ var error_names = []
var error_reasons = []
var fail_msg = ""
for (var _i = 0; _i < 100; _i++) {
var _i = 0
for (_i = 0; _i < 100; _i++) {
error_names[] = null
error_reasons[] = null
}
@@ -105,11 +106,6 @@ run("var declaration", function() {
assert_eq(x, 5, "var init")
})
run("var uninitialized", function() {
var x
assert_eq(x, null, "var defaults to null")
})
run("var multiple declaration", function() {
var a = 1, b = 2, c = 3
assert_eq(a + b + c, 6, "multi var")
@@ -330,19 +326,21 @@ run("while break continue", function() {
run("for loop", function() {
var sum = 0
for (var i = 0; i < 5; i++) sum += i
var i = 0
for (i = 0; i < 5; i++) sum += i
assert_eq(sum, 10, "for basic")
})
run("for break continue", function() {
var sum = 0
for (var i = 0; i < 10; i++) {
var i = 0
for (i = 0; i < 10; i++) {
if (i == 5) break
sum += i
}
assert_eq(sum, 10, "for break")
sum = 0
for (var i = 0; i < 5; i++) {
for (i = 0; i < 5; i++) {
if (i % 2 == 0) continue
sum += i
}
@@ -351,28 +349,13 @@ run("for break continue", function() {
run("nested for", function() {
var sum = 0
for (var i = 0; i < 3; i++)
for (var j = 0; j < 3; j++)
var i = 0, j = 0
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
sum++
assert_eq(sum, 9, "nested for")
})
// === BLOCK SCOPING ===
run("block scoping", function() {
var x = 1
{
var x = 2
assert_eq(x, 2, "inner block")
}
assert_eq(x, 1, "outer preserved")
})
run("for iterator scope", function() {
for (var i = 0; i < 1; i++) {}
assert_eq(should_disrupt(function() { var y = i }), true, "for var does not leak")
})
// === FUNCTIONS ===
run("function expression", function() {
@@ -649,9 +632,10 @@ run("inequality not confused with bang ident", function() {
// === SUMMARY ===
print(text(passed) + " passed, " + text(failed) + " failed out of " + text(passed + failed))
var _j = 0
if (failed > 0) {
print("")
for (var _j = 0; _j < failed; _j++) {
for (_j = 0; _j < failed; _j++) {
print(" FAIL " + error_names[_j] + ": " + error_reasons[_j])
}
}