summaryrefslogtreecommitdiffstats
path: root/dom/bindings/test/test_throwing_method_noDCE.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/bindings/test/test_throwing_method_noDCE.html')
-rw-r--r--dom/bindings/test/test_throwing_method_noDCE.html30
1 files changed, 30 insertions, 0 deletions
diff --git a/dom/bindings/test/test_throwing_method_noDCE.html b/dom/bindings/test/test_throwing_method_noDCE.html
new file mode 100644
index 0000000000..92d1a0b7f9
--- /dev/null
+++ b/dom/bindings/test/test_throwing_method_noDCE.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Test that we don't DCE functions that can throw</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<script>
+/* global test, assert_true */
+test(function() {
+ function test(root) {
+ var threw = false;
+ try {
+ root.querySelectorAll("");
+ } catch (e) { threw = true; }
+ // Hot loop to make sure the JIT heuristics ion-compile this function even
+ // though it's throwing exceptions (which would normally make us back off
+ // of ion compilation).
+ for (var i = 0; i < 1500; i++) {
+ // empty
+ }
+ return threw;
+ }
+
+ var threw = false;
+ var el = document.createElement("div");
+ for (var i = 0; i < 200; i++)
+ threw = test(el);
+ assert_true(threw);
+}, "Shouldn't optimize away throwing functions");
+</script>