<!DOCTYPE html>
<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: `"a"[Symbol.iterator]()`},
        {expression: `"long string"[Symbol.iterator]()`},
        {expression: `[][Symbol.iterator]()`},
        {expression: `[1][Symbol.iterator]()`},
        {expression: `[1, "two", 3, "four", 5, "size"][Symbol.iterator]()`},
        {expression: `[1, "two", 3, "four", 5, "size"].keys()`},
        {expression: `[1, "two", 3, "four", 5, "size"].entries()`},
        {expression: `map = new Map; map.set(1, 2); map.set("key", "value"); map.values()`},
        {expression: `map.keys()`},
        {expression: `map.entries()`},
        {expression: `set = new Set; for (var i = 0; i <= 100; i++) set.add(i); set.values()`},
        {expression: `map.entries()`},
        {expression: `x = undefined; (function() { x = arguments; })(1, "two"); x[Symbol.iterator]()`},
        {expression: `iter = [1, 2][Symbol.iterator](); iter["return"] = function(){}; iter`},
    ];

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

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