Skip to content

Commit

Permalink
fix(core): get v8 console from context extra bindings (denoland#17243)
Browse files Browse the repository at this point in the history
Explicitly get `console` object from V8 instead of relying on `console`
defined on the global object.
  • Loading branch information
legendecas committed Jan 6, 2023
1 parent d1cdf65 commit 82e9307
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
6 changes: 6 additions & 0 deletions core/bindings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,12 @@ pub fn initialize_context<'s>(
// Bind functions to Deno.core.*
set_func(scope, core_obj, "callConsole", call_console);

// Bind v8 console object to Deno.core.console
let extra_binding_obj = context.get_extras_binding_object(scope);
let console_str = v8::String::new(scope, "console").unwrap();
let console_obj = extra_binding_obj.get(scope, console_str.into()).unwrap();
core_obj.set(scope, console_str.into(), console_obj);

// Bind functions to Deno.core.ops.*
let ops_obj = v8::Object::new(scope);
let ops_str = v8::String::new(scope, "ops").unwrap();
Expand Down
4 changes: 2 additions & 2 deletions runtime/js/99_main.js
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ delete Intl.v8BreakIterator;
performance.setTimeOrigin(DateNow());
net.setup(runtimeOptions.unstableFlag);

const consoleFromV8 = window.console;
const consoleFromV8 = window.Deno.core.console;
const wrapConsole = window.__bootstrap.console.wrapConsole;

// Remove bootstrapping data from the global scope
Expand Down Expand Up @@ -544,7 +544,7 @@ delete Intl.v8BreakIterator;
performance.setTimeOrigin(DateNow());
net.setup(runtimeOptions.unstableFlag);

const consoleFromV8 = window.console;
const consoleFromV8 = window.Deno.core.console;
const wrapConsole = window.__bootstrap.console.wrapConsole;

// Remove bootstrapping data from the global scope
Expand Down

0 comments on commit 82e9307

Please sign in to comment.