summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/browser/test-closure-optimized-out.html
blob: 28242ac07ede4e0ca027488474e5e8a806b80a43 (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">
        /* eslint-disable */
        window.addEventListener("load", function () {
        function clickHandler(event) {
          button.removeEventListener("click", clickHandler);
          function outer(arg) {
            let 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;
            };
          }

          let f = outer(42);
          f();
        }
        let button = document.querySelector("button");
        button.addEventListener("click", clickHandler);
      }, {once: true});
    </script>

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