mirror of
https://github.com/denoland/deno.git
synced 2025-09-27 12:49:10 +00:00
web-compatibility console (#2042)
This commit is contained in:
parent
917e68f30f
commit
6463a75b44
2 changed files with 19 additions and 2 deletions
|
@ -10,6 +10,16 @@ function stringify(...args: unknown[]): string {
|
||||||
return stringifyArgs(args).replace(/\n$/, "");
|
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() {
|
test(function consoleTestAssertShouldNotThrowError() {
|
||||||
console.assert(true);
|
console.assert(true);
|
||||||
|
|
||||||
|
@ -123,7 +133,7 @@ test(function consoleTestStringifyCircular() {
|
||||||
assertEquals(stringify(JSON), "{}");
|
assertEquals(stringify(JSON), "{}");
|
||||||
assertEquals(
|
assertEquals(
|
||||||
stringify(console),
|
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
|
// test inspect is working the same
|
||||||
assertEquals(inspect(nestedObj), nestedObjExpected);
|
assertEquals(inspect(nestedObj), nestedObjExpected);
|
||||||
|
|
|
@ -46,13 +46,20 @@ window.window = window;
|
||||||
window.Deno = deno;
|
window.Deno = deno;
|
||||||
Object.freeze(window.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.
|
// Globally available functions and object instances.
|
||||||
window.atob = textEncoding.atob;
|
window.atob = textEncoding.atob;
|
||||||
window.btoa = textEncoding.btoa;
|
window.btoa = textEncoding.btoa;
|
||||||
window.fetch = fetchTypes.fetch;
|
window.fetch = fetchTypes.fetch;
|
||||||
window.clearTimeout = timers.clearTimer;
|
window.clearTimeout = timers.clearTimer;
|
||||||
window.clearInterval = timers.clearTimer;
|
window.clearInterval = timers.clearTimer;
|
||||||
window.console = new consoleTypes.Console(core.print);
|
window.console = console;
|
||||||
window.setTimeout = timers.setTimeout;
|
window.setTimeout = timers.setTimeout;
|
||||||
window.setInterval = timers.setInterval;
|
window.setInterval = timers.setInterval;
|
||||||
window.location = (undefined as unknown) as domTypes.Location;
|
window.location = (undefined as unknown) as domTypes.Location;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue