diff options
Diffstat (limited to 'Godeps/_workspace/src/github.com/obscuren/otto/panic_test.go')
-rw-r--r-- | Godeps/_workspace/src/github.com/obscuren/otto/panic_test.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/github.com/obscuren/otto/panic_test.go b/Godeps/_workspace/src/github.com/obscuren/otto/panic_test.go new file mode 100644 index 000000000..06f0a64fc --- /dev/null +++ b/Godeps/_workspace/src/github.com/obscuren/otto/panic_test.go @@ -0,0 +1,40 @@ +package otto + +import ( + "testing" +) + +func Test_panic(t *testing.T) { + tt(t, func() { + test, _ := test() + + // Test that property.value is set to something if writable is set + // to something + test(` + var abc = []; + Object.defineProperty(abc, "0", { writable: false }); + Object.defineProperty(abc, "0", { writable: false }); + "0" in abc; + `, true) + + test(`raise: + var abc = []; + Object.defineProperty(abc, "0", { writable: false }); + Object.defineProperty(abc, "0", { value: false, writable: false }); + `, "TypeError") + + // Test that a regular expression can contain \c0410 (CYRILLIC CAPITAL LETTER A) + // without panicking + test(` + var abc = 0x0410; + var def = String.fromCharCode(abc); + new RegExp("\\c" + def).exec(def); + `, "null") + + // Test transforming a transformable regular expression without a panic + test(` + new RegExp("\\u0000"); + new RegExp("\\undefined").test("undefined"); + `, true) + }) +} |