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.html27
1 files changed, 27 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 000000000..e952819a8
--- /dev/null
+++ b/dom/bindings/test/test_throwing_method_noDCE.html
@@ -0,0 +1,27 @@
+<!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>
+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++) {}
+ 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>