<!DOCTYPE html>
<script src="../../resources/js-test-pre.js"></script>
<form action="javascript:void(0)" onsubmit="runTest(username.value)">
<input type="text" value="abc" name="username">
<input type="submit" name="login" value="Login">
</form>
<script>

description('This test tests that a lazy event listener attached to a form element keeps its form in the scope chain when the listener is called by JavaScript.');

var result;

function runTest(x)
{
    result = x;
    shouldBeEqualToString('result', 'abc');
}

var f = document.querySelector('form');

f.onsubmit();

// Should keep the ObjectEnvironment even when called without context.
(0, f.onsubmit)();

f.oldF = f.onsubmit;

f.onsubmit = function() {
    this.oldF();
};

f.login.click();

</script>
<script src="../../resources/js-test-pre.js"></script>
