mirror of
https://github.com/denoland/deno
synced 2024-08-27 20:09:17 +00:00
web-compatibility console (#2042)
This commit is contained in:
parent
917e68f30f
commit
6463a75b44
|
@ -10,6 +10,16 @@ function stringify(...args: unknown[]): string {
|
|||
return stringifyArgs(args).replace(/\n$/, "");
|
||||
}
|
||||
|
||||
// test cases from web-platform-tests
|
||||
// via https://github.com/web-platform-tests/wpt/blob/master/console/console-is-a-namespace.any.js
|
||||
test(function consoleShouldBeANamespace() {
|
||||
const prototype1 = Object.getPrototypeOf(console);
|
||||
const prototype2 = Object.getPrototypeOf(prototype1);
|
||||
|
||||
assertEquals(Object.getOwnPropertyNames(prototype1).length, 0);
|
||||
assertEquals(prototype2, Object.prototype);
|
||||
});
|
||||
|
||||
test(function consoleTestAssertShouldNotThrowError() {
|
||||
console.assert(true);
|
||||
|
||||
|
@ -123,7 +133,7 @@ test(function consoleTestStringifyCircular() {
|
|||
assertEquals(stringify(JSON), "{}");
|
||||
assertEquals(
|
||||
stringify(console),
|
||||
"Console { printFunc, log, debug, info, dir, warn, error, assert, count, countReset, table, time, timeLog, timeEnd, group, groupCollapsed, groupEnd, clear, indentLevel, collapsedAt }"
|
||||
"{ printFunc, log, debug, info, dir, warn, error, assert, count, countReset, table, time, timeLog, timeEnd, group, groupCollapsed, groupEnd, clear, indentLevel, collapsedAt }"
|
||||
);
|
||||
// test inspect is working the same
|
||||
assertEquals(inspect(nestedObj), nestedObjExpected);
|
||||
|
|
|
@ -46,13 +46,20 @@ window.window = window;
|
|||
window.Deno = deno;
|
||||
Object.freeze(window.Deno);
|
||||
|
||||
// ref https://console.spec.whatwg.org/#console-namespace
|
||||
// For historical web-compatibility reasons, the namespace object for
|
||||
// console must have as its [[Prototype]] an empty object, created as if
|
||||
// by ObjectCreate(%ObjectPrototype%), instead of %ObjectPrototype%.
|
||||
let console = Object.create({}) as consoleTypes.Console;
|
||||
Object.assign(console, new consoleTypes.Console(core.print));
|
||||
|
||||
// Globally available functions and object instances.
|
||||
window.atob = textEncoding.atob;
|
||||
window.btoa = textEncoding.btoa;
|
||||
window.fetch = fetchTypes.fetch;
|
||||
window.clearTimeout = timers.clearTimer;
|
||||
window.clearInterval = timers.clearTimer;
|
||||
window.console = new consoleTypes.Console(core.print);
|
||||
window.console = console;
|
||||
window.setTimeout = timers.setTimeout;
|
||||
window.setInterval = timers.setInterval;
|
||||
window.location = (undefined as unknown) as domTypes.Location;
|
||||
|
|
Loading…
Reference in a new issue