【问题标题】:V8 native syntax in ChromeChrome 中的 V8 原生语法
【发布时间】:2019-07-27 22:57:08
【问题描述】:

Nodejs 有特殊标志--allow-natives-syntax。是否可以将这样的东西传递给谷歌浏览器?或者也许 devtools 提供了一些其他方式来访问这些信息?

// running node with `--allow-natives-syntax` flag

var obj = { a: true, b: false };
console.log(%HasFastProperties(obj)); // true (Fast mode)
delete obj.a;
console.log(%HasFastProperties(obj)); // false (Dictionary mode)

【问题讨论】:

    标签: javascript google-chrome debugging google-chrome-devtools v8


    【解决方案1】:

    是的,如果您使用 --js-flags="--allow-natives-syntax" 启动 Chrome,您可以将该标志传递给 Google Chrome。

    (我应该指出,您通常不应在打开该标志的情况下运行 Chrome;仅将其用于调试您信任的网站。)

    【讨论】:

    • 太棒了!有用!顺便问一下,为什么你认为打开其他网站带有这个标志是危险的?
    • 因为它暴露了一堆 V8 引擎内部,从而可能让不受信任的 JavaScript 代码访问它不应该访问的东西。换句话说,您可能会被针对此场景的恶意网站/iframe 入侵。
    【解决方案2】:

    没有。您可以在此处找到所有可用的 Chrome 命令行标志:https://peter.sh/experiments/chromium-command-line-switches/

    您也许可以进行自定义 Chromium 构建以传递该标志。您还可以挂接到 Chrome 进程并手动设置符号的值。这两种选择都很糟糕。

    【讨论】:

    • 您介意将此标记为正确答案吗?我正在努力获得足够的声誉来发布 cmets。 (奇怪的是,我可以回复,但不能发帖。)
    • 其实我希望有人能找到解决办法,所以打算等几天。但如果你愿意,我现在可以接受。
    猜你喜欢
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 2016-07-24
    • 2017-01-29
    • 2014-08-04
    相关资源
    最近更新 更多