blob: 235e57a5f2ec2c506496bcbabb9ac7e4f23c5a8f [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!DOCTYPE html>
<html>
<head>
<title>Scopes</title>
<script>
(async () => {
const global = new WebAssembly.Global({value: 'i32', mutable: true}, 24);
const importObj = {imports: {global}};
const instance = await WebAssembly.instantiateStreaming(fetch('scopes.wasm'), importObj);
instance.instance.exports.foo(42);
})();
</script>
</head>
<body>
<h1>Scopes</h1>
<p>
This tests that the Scope view shown in DevTools shows all the relevant information when paused in a
Wasm function. This includes the module (instance, memory, globals), local and stack scope. It's
important that this information is presented to the user in a meaningful way.
</p>
<h2>Steps</h2>
<p>
<ol>
<li>Open DevTools</li>
<li>Locate the Wasm function <code>foo</code> from the <code>scopes.wasm</code> module and set a breakpoint on the <code>global.get $imports.global</code> line</li>
<li>Reload the page</button></li>
<li>Breakpoint should hit the new breakpoint</button></li>
<li>Now look at the Scope in the DevTools and make sure that it shows all the necessary information mentioned above in an easily accessible fashion</li>
<li>Step 1 time</li>
<li>Now look at the Scope in the DevTools and make sure that it has updated the scope values accordingly</li>
<li>Resume</li>
</ol>
</p>
</body>
</html>