<!DOCTYPE html><!-- webkit-test-runner [ jscOptions=--useDollarVM=true ] -->
<html>
<head>
<script src="../resources/js-test.js"></script>
</head>
<body>
<div id="foo"></div>
<script>
    description("Test taintedness is tracked via several ways to inject scripts in WebCore");
    // jsTestIsAsync = true;

    window.jsTestIsAsync = true;

    let foo = document.getElementById("foo");

    shouldBeIndirectlyTaintedString = "shouldBeEqualToString(\\'$vm.vmTaintedState()\\', \\'IndirectlyTainted\\')";
    shouldBeIndirectlyTaintedByHistoryString = "shouldBeEqualToString(\\'$vm.vmTaintedState()\\', \\'IndirectlyTaintedByHistory\\')";

    function checkFromOuterScript() {
        shouldBeEqualToString("$vm.vmTaintedState()", "IndirectlyTaintedByHistory");
        finishJSTest();
    }
    $vm.runTaintedString(`
        setTimeout(\`
            // IndirectlyTainted because this code is created by the setTimeout function.
            shouldBeEqualToString("$vm.vmTaintedState()", "IndirectlyTainted");
            Promise.resolve().then(checkFromOuterScript);
            42 + 0;
        \`, 0);
    `);

</script>
</body>
</html>