Node.js%OptimizeFunctionOnNextCall-运行时函数错误

时间:2019-04-21 00:57:31

标签: node.js v8

我正在运行Node v11.x.x,并收到有关V8运行时功能的错误。

let operand = 3;
function square() {
    return operand * operand;
}
square()
%OptimizeFunctionOnNextCall(square);
square()

运行:

node --allow-natives-syntax -trace_opt -trace_deopt main.js

收到错误

ReferenceError: OptimizeFunctionOnNextCall is not defined

我认为此运行时功能仍然包含在内,或者我做错了什么。

1 个答案:

答案 0 :(得分:2)

这是因为您依赖于semicolon自动 Javascript插入(您的意图没有实现)。

您的没有;的代码将转换为modulo操作,这是有效的JavaScript操作,因此在第一次调用{{之后,没有理由为您添加; 1}}。

square()

以这种方式编写(如square() % OptimizeFunctionOnNextCall(square); 所示),显然看起来像JavaScript操作。现在很明显为什么moduloOptimizeFunctionOnNextCall

将代码更改为(注意undefined):

;

以下是let operand = 3; function square() { return operand * operand; } square(); // <-- here %OptimizeFunctionOnNextCall(square); square(); 的{​​{3}}(SO用户)介绍为什么您不应该错过T.J. Crowder