浏览V8树,下src
目录,一些js文件都在那里,提供一些基本的JS对象,如数学,阵列等浏览这些文件,我看到的标识符,包括在他们的名字一个百分号(%),即%Foo
。 我第一次天真地以为这是在JS的标识符其他一些允许的字符,但是当我在外壳试了一下,大声训斥我,说我违反了语法规则。 但是,如果它是一个语法错误,怎么来的D8的作品? 下面是从实际的源代码的示例:
SRC / apinatives.js线44至47,从GitHub / V8 / V8 GIT中克隆
function Instantiate(data, name) {
if (!%IsTemplate(data)) return data;
var tag = %GetTemplateField(data, kApiTagOffset);
switch (tag) {
SRC / apinatives.js线41〜43,从GitHub / V8 / V8 GIT中克隆
function SetConstructor() {
if (%_IsConstructCall()) {
%SetInitialize(this);
为什么这个标识符不产生语法错误。 所有的JS文件,包括math.js和string.js和所有其他:WQ