<!DOCTYPE html><!-- webkit-test-runner [ jscOptions=--useBigInt=true ] -->
<html>
<head>
<meta charset="utf-8">
<script src="../../../http/tests/inspector/resources/inspector-test.js"></script>
<script src="resources/remote-object-utilities.js"></script>
<script>
function test()
{
    let steps = [
        {expression: `0`},
        {expression: `-0`},
        {expression: `1`},
        {expression: `-1`},
        {expression: `1.234`},
        {expression: `-1.234`},
        {expression: `1e3`},
        {expression: `Number.MAX_VALUE`},
        {expression: `Number.MIN_VALUE`},
        {expression: `NaN`},
        {expression: `Infinity`},
        {expression: `-Infinity`},
        {expression: `123n`},
    ];

    if (!window.WI) {
        window.steps = steps;
        return;
    }

    runSteps(steps);
}
</script>
</head>
<body onload="runTest(); runInBrowserTest();"></body>
</html>
