|
@@ -2097,25 +2097,56 @@ func TestTryEmptyCatchStackLeak(t *testing.T) {
|
|
testScript1(SCRIPT, _undefined, t)
|
|
testScript1(SCRIPT, _undefined, t)
|
|
}
|
|
}
|
|
|
|
|
|
-// FIXME
|
|
|
|
-/*
|
|
|
|
|
|
+func TestFalsyLoopBreak(t *testing.T) {
|
|
|
|
+ const SCRIPT = `
|
|
|
|
+ while(false) {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ for(;false;) {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ undefined;
|
|
|
|
+ `
|
|
|
|
+ MustCompile("", SCRIPT, false)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func TestFalsyLoopBreakWithResult(t *testing.T) {
|
|
|
|
+ const SCRIPT = `
|
|
|
|
+ while(false) {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ `
|
|
|
|
+ testScript1(SCRIPT, _undefined, t)
|
|
|
|
+}
|
|
|
|
+
|
|
func TestDummyCompile(t *testing.T) {
|
|
func TestDummyCompile(t *testing.T) {
|
|
const SCRIPT = `
|
|
const SCRIPT = `
|
|
-'use strict';
|
|
|
|
|
|
+ 'use strict';
|
|
|
|
+
|
|
|
|
+ for (;false;) {
|
|
|
|
+ eval = 1;
|
|
|
|
+ }
|
|
|
|
+ `
|
|
|
|
|
|
-for (;false;) {
|
|
|
|
- eval = 1;
|
|
|
|
|
|
+ _, err := Compile("", SCRIPT, false)
|
|
|
|
+ if err == nil {
|
|
|
|
+ t.Fatal("expected error")
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func TestDummyCompileForUpdate(t *testing.T) {
|
|
|
|
+ const SCRIPT = `
|
|
|
|
+ 'use strict';
|
|
|
|
+
|
|
|
|
+ for (;false;eval=1) {
|
|
|
|
+ }
|
|
`
|
|
`
|
|
- defer func() {
|
|
|
|
- if recover() == nil {
|
|
|
|
- t.Fatal("Expected panic")
|
|
|
|
- }
|
|
|
|
- }()
|
|
|
|
|
|
|
|
- testScript1(SCRIPT, _undefined, t)
|
|
|
|
-}*/
|
|
|
|
|
|
+ _, err := Compile("", SCRIPT, false)
|
|
|
|
+ if err == nil {
|
|
|
|
+ t.Fatal("expected error")
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
|
|
func BenchmarkCompile(b *testing.B) {
|
|
func BenchmarkCompile(b *testing.B) {
|
|
f, err := os.Open("testdata/S15.10.2.12_A1_T1.js")
|
|
f, err := os.Open("testdata/S15.10.2.12_A1_T1.js")
|