<!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>