use*_*010 8 javascript syntax v8
我%在许多代码中看到过.你能解释一下它的目的或它的作用吗?
PS:%谷歌的搜索被忽略了,所以我在Google上找不到它.
编辑:我知道数学中的操作数,13 % 10 = 3但我看到的是return %foo.
根据您在注释中提供的链接,该%字符似乎在某些V8 JavaScript引擎源代码中使用,以指示将在解析JavaScript源时执行的C++运行时的方法.
例如,string.js中的行:
return %StringBuilderConcat(parts, len + 1, "");
Run Code Online (Sandbox Code Playgroud)
当解析器遇到该StringBuilderConcat方法时,将执行该方法.您可以在runtime.h中找到V8 JavaScript文件可用的运行时方法列表(注意,我没有使用C++的经验,所以我知道这与string.js中StringBuilderConcat引用的方法无关,但是我认为这是一回事):
#define RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \
/* Property access */ \
F(GetProperty, 2, 1) \
F(KeyedGetProperty, 2, 1) \
/* ... */
F(StringBuilderConcat, 3, 1) \
/* ... */
Run Code Online (Sandbox Code Playgroud)
正如已经说过的那样,return %foo会在JavaScript中抛出一个SyntaxError.