summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/syntax/omitted-catch-binding.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--js/src/tests/non262/syntax/omitted-catch-binding.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/js/src/tests/non262/syntax/omitted-catch-binding.js b/js/src/tests/non262/syntax/omitted-catch-binding.js
new file mode 100644
index 0000000000..86b3c0f4f8
--- /dev/null
+++ b/js/src/tests/non262/syntax/omitted-catch-binding.js
@@ -0,0 +1,36 @@
+var state = 'initial';
+try {
+ throw new Error('caught');
+ state = 'unreachable';
+} catch { // Note the lack of a binding
+ assertEq(state, 'initial');
+ state = 'caught';
+}
+assertEq(state, 'caught');
+
+
+var sigil1 = {};
+try {
+ throw sigil1;
+} catch (e) {
+ assertEq(e, sigil1);
+}
+
+
+var sigil2 = {};
+var reached = false;
+try {
+ try {
+ throw sigil1;
+ } catch {
+ reached = true;
+ } finally {
+ throw sigil2;
+ }
+} catch (e) {
+ assertEq(e, sigil2);
+}
+assertEq(reached, true);
+
+if (typeof reportCompare === "function")
+ reportCompare(0, 0);