54 lines
1,008 B
HTML
54 lines
1,008 B
HTML
<!doctype html>
|
|
<title>XMLHttpRequest: open() attempts to toString its string parameters</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<div id="log"></div>
|
|
<script>
|
|
test(() => {
|
|
let log = [];
|
|
let expected = [
|
|
'method',
|
|
'url',
|
|
// NOTE: 'async' intentionally missing
|
|
'username',
|
|
'password',
|
|
];
|
|
|
|
let xhr = new XMLHttpRequest;
|
|
xhr.open(
|
|
{
|
|
toString() {
|
|
log.push('method');
|
|
return 'get';
|
|
},
|
|
},
|
|
{
|
|
toString() {
|
|
log.push('url');
|
|
return location.href;
|
|
},
|
|
},
|
|
// NOTE: ToBoolean should not invoke valueOf
|
|
{
|
|
valueOf() {
|
|
log.push('async');
|
|
return true;
|
|
},
|
|
},
|
|
{
|
|
toString() {
|
|
log.push('username');
|
|
return 'username';
|
|
},
|
|
},
|
|
{
|
|
toString() {
|
|
log.push('password');
|
|
return 'password';
|
|
},
|
|
}
|
|
);
|
|
|
|
assert_array_equals(log, expected);
|
|
});
|
|
</script>
|