summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/test-closure-optimized-out.html
blob: 3ad4e8fc0a0752ba27354cbbd760ba9a5e08da75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE HTML>
<html>
  <head>
    <meta charset='utf-8'/>
    <title>Debugger Test for Inspecting Optimized-Out Variables</title>
    <!-- Any copyright is dedicated to the Public Domain.
         http://creativecommons.org/publicdomain/zero/1.0/ -->
    <script type="text/javascript">
      window.addEventListener("load", function onload() {
        window.removeEventListener("load", onload);
        function clickHandler(event) {
          button.removeEventListener("click", clickHandler, false);
          function outer(arg) {
            var upvar = arg * 2;
            // The inner lambda only aliases arg, so the frontend alias analysis decides
            // that upvar is not aliased and is not in the CallObject.
            return function () {
              arg += 2;
            };
          }

          var f = outer(42);
          f();
        }
        var button = document.querySelector("button");
        button.addEventListener("click", clickHandler, false);
      });
    </script>

  </head>
  <body>
    <button>Click me!</button>
  </body>
</html>