我正在运行 Node v11.xx,并收到 V8 运行时函数的错误。
let operand = 3;
function square() {
return operand * operand;
}
square()
%OptimizeFunctionOnNextCall(square);
square()
Run Code Online (Sandbox Code Playgroud)
运行:
node --allow-natives-syntax -trace_opt -trace_deopt main.js
Run Code Online (Sandbox Code Playgroud)
收到错误
ReferenceError: OptimizeFunctionOnNextCall is not defined
Run Code Online (Sandbox Code Playgroud)
我认为这个运行时函数仍然包含在内,或者我做错了什么。
这是因为您依赖于自动 semicolon插入Javascript(这违背了您的意图)。
您的代码没有;转换为modulo有效JavaScript操作的操作,因此没有理由;在第一次调用后为您添加 a square()。
square() % OptimizeFunctionOnNextCall(square);
Run Code Online (Sandbox Code Playgroud)
这样写(如图JavaScript所示),显然看起来像modulo操作。现在原因很明显OptimizeFunctionOnNextCall了undefined。
将您的代码更改为(注意;):
let operand = 3;
function square() {
return operand * operand;
}
square(); // <-- here
%OptimizeFunctionOnNextCall(square);
square();
Run Code Online (Sandbox Code Playgroud)
这是(SO 用户)的一篇很好的读物T.J. Crowder,解释了为什么你不应该错过;
| 归档时间: |
|
| 查看次数: |
844 次 |
| 最近记录: |