blob: 91dd22fa2a9afb0c0c02dd2f95e1f7c5f42f524c [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult('Tests that console logging dumps array values defined on Array.prototype[].\n');
await TestRunner.loadModule('console_test_runner');
await TestRunner.showPanel('console');
await TestRunner.evaluateInPagePromise(`
function log(data)
{
console.log(data);
}
var a0 = [];
var a1 = []; a1.length = 1;
var a2 = []; a2.length = 5;
var a3 = [,2,3];
var a4 = []; a4.length = 15;
var a5 = []; a5.length = 15; a5[8] = 8;
var a6 = []; a6.length = 15; a6[0] = 0; a6[10] = 10;
var a7 = [,,,4]; a7.length = 15;
for (var i = 0; i < 6; ++i)
a7["index" + i] = i;
var a8 = [];
for (var i = 0; i < 10; ++i)
a8[i] = i;
var a9 = [];
for (var i = 1; i < 5; ++i) {
a9[i] = i;
a9[i + 5] = i + 5;
}
a9.length = 11;
a9.foo = "bar";
a10 = Object.create([1,2]);
//# sourceURL=console-format-array-prototype.js
`);
loopOverGlobals(0, 11);
function loopOverGlobals(current, total) {
function advance() {
var next = current + 1;
if (next === total) {
TestRunner.evaluateInPage('tearDown()');
TestRunner.deprecatedRunAfterPendingDispatches(finish);
} else {
loopOverGlobals(next, total);
}
}
function finish() {
ConsoleTestRunner.dumpConsoleMessages(false, false, TestRunner.textContentWithLineBreaks);
TestRunner.completeTest();
}
ConsoleTestRunner.evaluateInConsole('a' + current);
TestRunner.deprecatedRunAfterPendingDispatches(invokeConsoleLog);
function invokeConsoleLog() {
TestRunner.evaluateInPage('log(a' + current + ')');
TestRunner.deprecatedRunAfterPendingDispatches(advance);
}
}
})();