blob: f32fddc1106f9317e54c7c8b5506e14d78a5a125 [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 properly displays information about ES6 features.\n');
await TestRunner.loadModule('console_test_runner');
await TestRunner.showPanel('console');
await TestRunner.evaluateInPagePromise(`
var globals = [];
function log(current)
{
console.log(globals[current]);
console.log([globals[current]]);
}
(function onload()
{
var p = Promise.reject(-0);
p.catch(function() {});
var p2 = Promise.resolve(1);
var p3 = new Promise(() => {});
var smb1 = Symbol();
var smb2 = Symbol("a");
var obj = {
get getter() {}
};
obj["a"] = smb1;
obj[smb2] = 2;
var map = new Map();
var weakMap = new WeakMap();
map.set(obj, {foo: 1});
weakMap.set(obj, {foo: 1});
var set = new Set();
var weakSet = new WeakSet();
set.add(obj);
weakSet.add(obj);
var mapMap0 = new Map();
mapMap0.set(new Map(), new WeakMap());
var mapMap = new Map();
mapMap.set(map, weakMap);
var setSet0 = new Set();
setSet0.add(new WeakSet());
var setSet = new Set();
setSet.add(weakSet);
var bigmap = new Map();
bigmap.set(" from str ", " to str ");
bigmap.set(undefined, undefined);
bigmap.set(null, null);
bigmap.set(42, 42);
bigmap.set({foo:"from"}, {foo:"to"});
bigmap.set(["from"], ["to"]);
var genFunction = function *() {
yield 1;
yield 2;
}
var generator = genFunction();
globals = [
p, p2, p3, smb1, smb2, obj, map, weakMap, set, weakSet,
mapMap0, mapMap, setSet0, setSet, bigmap, generator
];
})();
`);
TestRunner.evaluateInPage('globals.length', loopOverGlobals.bind(this, 0));
function loopOverGlobals(current, total) {
function advance() {
var next = current + 1;
if (next == total)
finish();
else
loopOverGlobals(next, total);
}
async function finish() {
await ConsoleTestRunner.dumpConsoleMessages(false, false, TestRunner.textContentWithLineBreaks);
TestRunner.addResult('Expanded all messages');
ConsoleTestRunner.expandConsoleMessages(dumpConsoleMessages);
}
async function dumpConsoleMessages() {
await ConsoleTestRunner.dumpConsoleMessages(false, false, TestRunner.textContentWithLineBreaks);
TestRunner.completeTest();
}
TestRunner.evaluateInPage('log(' + current + ')');
TestRunner.deprecatedRunAfterPendingDispatches(evalInConsole);
function evalInConsole() {
ConsoleTestRunner.evaluateInConsole('globals[' + current + ']');
TestRunner.deprecatedRunAfterPendingDispatches(advance);
}
}
})();