亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nodes.cpp

?? khtml在gtk上的移植版本
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
  if ( value )    value->ref();}bool ReturnNode::deref(){  if ( value && value->deref() )    delete value;  return Node::deref();}// ECMA 12.9Completion ReturnNode::execute(ExecState *exec){  KJS_BREAKPOINT;  if (!value)    return Completion(ReturnValue, Undefined());  Value v = value->evaluate(exec);  KJS_CHECKEXCEPTION  return Completion(ReturnValue, v);}// ------------------------------ WithNode -------------------------------------void WithNode::ref(){  Node::ref();  if ( statement )    statement->ref();  if ( expr )    expr->ref();}bool WithNode::deref(){  if ( statement && statement->deref() )    delete statement;  if ( expr && expr->deref() )    delete expr;  return Node::deref();}// ECMA 12.10Completion WithNode::execute(ExecState *exec){  KJS_BREAKPOINT;  Value v = expr->evaluate(exec);  KJS_CHECKEXCEPTION  Object o = v.toObject(exec);  KJS_CHECKEXCEPTION  exec->context().imp()->pushScope(o);  Completion res = statement->execute(exec);  exec->context().imp()->popScope();  return res;}void WithNode::processVarDecls(ExecState *exec){  statement->processVarDecls(exec);}// ------------------------------ CaseClauseNode -------------------------------void CaseClauseNode::ref(){  Node::ref();  if ( expr )    expr->ref();  if ( list )    list->ref();}bool CaseClauseNode::deref(){  if ( expr && expr->deref() )    delete expr;  if ( list && list->deref() )    delete list;  return Node::deref();}// ECMA 12.11Value CaseClauseNode::evaluate(ExecState *exec){  Value v = expr->evaluate(exec);  KJS_CHECKEXCEPTIONVALUE  return v;}// ECMA 12.11Completion CaseClauseNode::evalStatements(ExecState *exec){  if (list)    return list->execute(exec);  else    return Completion(Normal, Undefined());}void CaseClauseNode::processVarDecls(ExecState *exec){  if (list)    list->processVarDecls(exec);}// ------------------------------ ClauseListNode -------------------------------void ClauseListNode::ref(){  for (ClauseListNode *n = this; n; n = n->nx) {    n->Node::ref();    if (n->cl)      n->cl->ref();  }}bool ClauseListNode::deref(){  ClauseListNode *next;  for (ClauseListNode *n = this; n; n = next) {    next = n->nx;    if (n->cl && n->cl->deref())      delete n->cl;    if (n != this && n->Node::deref())      delete n;  }  return Node::deref();}Value ClauseListNode::evaluate(ExecState */*exec*/){  /* should never be called */  assert(false);  return Value();}// ECMA 12.11void ClauseListNode::processVarDecls(ExecState *exec){  for (ClauseListNode *n = this; n; n = n->nx)    if (n->cl)      n->cl->processVarDecls(exec);}// ------------------------------ CaseBlockNode --------------------------------CaseBlockNode::CaseBlockNode(ClauseListNode *l1, CaseClauseNode *d,                             ClauseListNode *l2){  if (l1) {    list1 = l1->nx;    l1->nx = 0;  } else {    list1 = 0;  }  def = d;  if (l2) {    list2 = l2->nx;    l2->nx = 0;  } else {    list2 = 0;  }} void CaseBlockNode::ref(){  Node::ref();  if ( def )    def->ref();  if ( list1 )    list1->ref();  if ( list2 )    list2->ref();}bool CaseBlockNode::deref(){  if ( def && def->deref() )    delete def;  if ( list1 && list1->deref() )    delete list1;  if ( list2 && list2->deref() )    delete list2;  return Node::deref();}Value CaseBlockNode::evaluate(ExecState */*exec*/){  /* should never be called */  assert(false);  return Value();}// ECMA 12.11Completion CaseBlockNode::evalBlock(ExecState *exec, const Value& input){  Value v;  Completion res;  ClauseListNode *a = list1, *b = list2;  CaseClauseNode *clause;    while (a) {      clause = a->clause();      a = a->next();      v = clause->evaluate(exec);      KJS_CHECKEXCEPTION      if (strictEqual(exec, input, v)) {	res = clause->evalStatements(exec);	if (res.complType() != Normal)	  return res;	while (a) {	  res = a->clause()->evalStatements(exec);	  if (res.complType() != Normal)	    return res;	  a = a->next();	}	break;      }    }  while (b) {    clause = b->clause();    b = b->next();    v = clause->evaluate(exec);    KJS_CHECKEXCEPTION    if (strictEqual(exec, input, v)) {      res = clause->evalStatements(exec);      if (res.complType() != Normal)	return res;      goto step18;    }  }  // default clause  if (def) {    res = def->evalStatements(exec);    if (res.complType() != Normal)      return res;  }  b = list2; step18:  while (b) {    clause = b->clause();    res = clause->evalStatements(exec);    if (res.complType() != Normal)      return res;    b = b->next();  }  // bail out on error  KJS_CHECKEXCEPTION  return Completion(Normal);}void CaseBlockNode::processVarDecls(ExecState *exec){  if (list1)    list1->processVarDecls(exec);  if (def)    def->processVarDecls(exec);  if (list2)    list2->processVarDecls(exec);}// ------------------------------ SwitchNode -----------------------------------void SwitchNode::ref(){  Node::ref();  if ( expr )    expr->ref();  if ( block )    block->ref();}bool SwitchNode::deref(){  if ( expr && expr->deref() )    delete expr;  if ( block && block->deref() )    delete block;  return Node::deref();}// ECMA 12.11Completion SwitchNode::execute(ExecState *exec){  KJS_BREAKPOINT;  Value v = expr->evaluate(exec);  KJS_CHECKEXCEPTION  Completion res = block->evalBlock(exec,v);  if ((res.complType() == Break) && ls.contains(res.target()))    return Completion(Normal, res.value());  else    return res;}void SwitchNode::processVarDecls(ExecState *exec){  block->processVarDecls(exec);}// ------------------------------ LabelNode ------------------------------------void LabelNode::ref(){  Node::ref();  if ( statement )    statement->ref();}bool LabelNode::deref(){  if ( statement && statement->deref() )    delete statement;  return Node::deref();}// ECMA 12.12Completion LabelNode::execute(ExecState *exec){  Completion e;  if (!exec->context().imp()->seenLabels()->push(label)) {    return Completion( Throw,		       throwError(exec, SyntaxError, "Duplicated label %s found.", label));  };  e = statement->execute(exec);  exec->context().imp()->seenLabels()->pop();  if ((e.complType() == Break) && (e.target() == label))    return Completion(Normal, e.value());  else    return e;}void LabelNode::processVarDecls(ExecState *exec){  statement->processVarDecls(exec);}// ------------------------------ ThrowNode ------------------------------------void ThrowNode::ref(){  Node::ref();  if ( expr )    expr->ref();}bool ThrowNode::deref(){  if ( expr && expr->deref() )    delete expr;  return Node::deref();}// ECMA 12.13Completion ThrowNode::execute(ExecState *exec){  KJS_BREAKPOINT;  Value v = expr->evaluate(exec);  KJS_CHECKEXCEPTION  // bail out on error  KJS_CHECKEXCEPTION  return Completion(Throw, v);}// ------------------------------ CatchNode ------------------------------------void CatchNode::ref(){  Node::ref();  if ( block )    block->ref();}bool CatchNode::deref(){  if ( block && block->deref() )    delete block;  return Node::deref();}Completion CatchNode::execute(ExecState */*exec*/){  // should never be reached. execute(exec, arg) is used instead  assert(0L);  return Completion();}// ECMA 12.14Completion CatchNode::execute(ExecState *exec, const Value &arg){  /* TODO: correct ? Not part of the spec */  exec->clearException();  Object obj(new ObjectImp());  obj.put(exec, ident, arg, DontDelete);  exec->context().imp()->pushScope(obj);  Completion c = block->execute(exec);  exec->context().imp()->popScope();  return c;}void CatchNode::processVarDecls(ExecState *exec){  block->processVarDecls(exec);}// ------------------------------ FinallyNode ----------------------------------void FinallyNode::ref(){  Node::ref();  if ( block )    block->ref();}bool FinallyNode::deref(){  if ( block && block->deref() )    delete block;  return Node::deref();}// ECMA 12.14Completion FinallyNode::execute(ExecState *exec){  return block->execute(exec);}void FinallyNode::processVarDecls(ExecState *exec){  block->processVarDecls(exec);}// ------------------------------ TryNode --------------------------------------void TryNode::ref(){  Node::ref();  if ( block )    block->ref();  if ( _final )    _final->ref();  if ( _catch )    _catch->ref();}bool TryNode::deref(){  if ( block && block->deref() )    delete block;  if ( _final && _final->deref() )    delete _final;  if ( _catch && _catch->deref() )    delete _catch;  return Node::deref();}// ECMA 12.14Completion TryNode::execute(ExecState *exec){  KJS_BREAKPOINT;  Completion c, c2;  c = block->execute(exec);  if (!_final) {    if (c.complType() != Throw)      return c;    return _catch->execute(exec,c.value());  }  if (!_catch) {    c2 = _final->execute(exec);    return (c2.complType() == Normal) ? c : c2;  }  if (c.complType() == Throw)    c = _catch->execute(exec,c.value());  c2 = _final->execute(exec);  return (c2.complType() == Normal) ? c : c2;}void TryNode::processVarDecls(ExecState *exec){  block->processVarDecls(exec);  if (_final)    _final->processVarDecls(exec);  if (_catch)    _catch->processVarDecls(exec);}// ------------------------------ ParameterNode --------------------------------void ParameterNode::ref(){  for (ParameterNode *n = this; n; n = n->next)    n->Node::ref();}bool ParameterNode::deref(){  ParameterNode *next;  for (ParameterNode *n = this; n; n = next) {    next = n->next;    if (n != this && n->Node::deref())      delete n;  }  return Node::deref();}// ECMA 13Value ParameterNode::evaluate(ExecState */*exec*/){  return Undefined();}// ------------------------------ FunctionBodyNode -----------------------------FunctionBodyNode::FunctionBodyNode(SourceElementsNode *s)  : BlockNode(s){  setLoc(-1, -1, -1);  //fprintf(stderr,"FunctionBodyNode::FunctionBodyNode %p\n",this);}void FunctionBodyNode::processFuncDecl(ExecState *exec){  if (source)    source->processFuncDecl(exec);}// ------------------------------ FuncDeclNode ---------------------------------void FuncDeclNode::ref(){  Node::ref();  if ( param )    param->ref();  if ( body )    body->ref();}bool FuncDeclNode::deref(){  if ( param && param->deref() )    delete param;  if ( body && body->deref() )    delete body;  return Node::deref();}// ECMA 13void FuncDeclNode::processFuncDecl(ExecState *exec){  // TODO: let this be an object with [[Class]] property "Function"  FunctionImp *fimp = new DeclaredFunctionImp(exec, ident, body, exec->context().imp()->scopeChain());  Object func(fimp); // protect from GC  //  Value proto = exec->lexicalInterpreter()->builtinObject().construct(exec,List::empty());  List empty;  Object proto = exec->lexicalInterpreter()->builtinObject().construct(exec,empty);  proto.put(exec, constructorPropertyName, func, ReadOnly|DontDelete|DontEnum);  func.put(exec, prototypePropertyName, proto, Internal|DontDelete);  int plen = 0;  for(ParameterNode *p = param; p != 0L; p = p->nextParam(), plen++)    fimp->addParameter(p->ident());  func.put(exec, lengthPropertyName, Number(plen), ReadOnly|DontDelete|DontEnum);  exec->context().imp()->variableObject().put(exec,ident,func);  if (body) {    // hack the scope so that the function gets put as a property of func, and it's scope    // contains the func as well as our current scope    Object oldVar = exec->context().imp()->variableObject();    exec->context().imp()->setVariableObject(func);    exec->context().imp()->pushScope(func);    body->processFuncDecl(exec);    exec->context().imp()->popScope();    exec->context().imp()->setVariableObject(oldVar);  }}// ------------------------------ FuncExprNode ---------------------------------void FuncExprNode::ref(){  Node::ref();  if ( param )    param->ref();  if ( body )    body->ref();}bool FuncExprNode::deref(){  if ( param && param->deref() )    delete param;  if ( body && body->deref() )    delete body;  return Node::deref();}// ECMA 13Value FuncExprNode::evaluate(ExecState *exec){  FunctionImp *fimp = new DeclaredFunctionImp(exec, Identifier::null(), body, exec->context().imp()->scopeChain());  Value ret(fimp);  List empty;  Value proto = exec->lexicalInterpreter()->builtinObject().construct(exec,empty);  fimp->put(exec, prototypePropertyName, proto, Internal|DontDelete);  int plen = 0;  for(ParameterNode *p = param; p != 0L; p = p->nextParam(), plen++)    fimp->addParameter(p->ident());  return ret;}// ------------------------------ SourceElementsNode ---------------------------SourceElementsNode::SourceElementsNode(StatementNode *s1)  : element(s1), elements(this){  setLoc(s1->firstLine(), s1->lastLine(), s1->sourceId());} SourceElementsNode::SourceElementsNode(SourceElementsNode *s1, StatementNode *s2)  : element(s2), elements(s1->elements){  s1->elements = this;  setLoc(s1->firstLine(), s2->lastLine(), s1->sourceId());}void SourceElementsNode::ref(){  for (SourceElementsNode *n = this; n; n = n->elements) {    n->Node::ref();    if (n->element)      n->element->ref();  }}bool SourceElementsNode::deref(){  SourceElementsNode *next;  for (SourceElementsNode *n = this; n; n = next) {    next = n->elements;    if (n->element && n->element->deref())      delete n->element;    if (n != this && n->Node::deref())      delete n;  }  return Node::deref();}// ECMA 14Completion SourceElementsNode::execute(ExecState *exec){  KJS_CHECKEXCEPTION  Completion c1 = element->execute(exec);  KJS_CHECKEXCEPTION;  if (c1.complType() != Normal)    return c1;    for (SourceElementsNode *n = elements; n; n = n->elements) {    Completion c2 = n->element->execute(exec);    if (c2.complType() != Normal)      return c2;    // The spec says to return c2 here, but it seems that mozilla returns c1 if    // c2 doesn't have a value    if (!c2.value().isNull())      c1 = c2;  }    return c1;}// ECMA 14void SourceElementsNode::processFuncDecl(ExecState *exec){  for (SourceElementsNode *n = this; n; n = n->elements)    n->element->processFuncDecl(exec);}void SourceElementsNode::processVarDecls(ExecState *exec){  for (SourceElementsNode *n = this; n; n = n->elements)    n->element->processVarDecls(exec);}ProgramNode::ProgramNode(SourceElementsNode *s): FunctionBodyNode(s) {    //fprintf(stderr,"ProgramNode::ProgramNode %p\n",this);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费高清| 国产综合色在线视频区| 69堂成人精品免费视频| 国产在线麻豆精品观看| 综合激情成人伊人| 精品成人私密视频| 国产精品网站一区| 欧美伦理电影网| 成人av集中营| 国产一区中文字幕| 日本午夜精品一区二区三区电影| 国产精品少妇自拍| 欧美精品一区二区三区蜜桃| 91在线观看成人| 国产精品一二三四区| 免费精品视频在线| 视频一区视频二区中文| 亚洲国产综合人成综合网站| 国产无人区一区二区三区| 欧美精品国产精品| 日本精品裸体写真集在线观看| 国产精品一线二线三线| 极品少妇xxxx精品少妇偷拍 | 午夜一区二区三区在线观看| 一区二区理论电影在线观看| 一区二区高清视频在线观看| 一区二区三区色| 亚洲国产综合人成综合网站| 亚洲精品自拍动漫在线| 尤物在线观看一区| 午夜一区二区三区在线观看| 蜜臀va亚洲va欧美va天堂| 蜜臀av一区二区在线免费观看| 美女视频黄久久| av在线播放一区二区三区| 91丝袜美腿高跟国产极品老师| 欧美自拍偷拍一区| 91精品国产综合久久国产大片| 日韩欧美中文一区| 国产亚洲欧美日韩俺去了| 国产精品丝袜久久久久久app| 亚洲女厕所小便bbb| 亚洲aⅴ怡春院| 国产又黄又大久久| av在线播放一区二区三区| 欧美午夜精品一区二区蜜桃| 欧美日韩成人高清| 国产免费成人在线视频| 夜夜嗨av一区二区三区四季av| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲电影欧美电影有声小说| 成人天堂资源www在线| 欧美一区二区三区婷婷月色| 久久久久青草大香线综合精品| 亚洲午夜激情网页| 国产一区在线看| 8v天堂国产在线一区二区| 欧美激情一区二区三区蜜桃视频| 亚洲成av人片在www色猫咪| 成人网在线免费视频| 欧美一区二区三级| 亚洲韩国一区二区三区| 99re视频精品| 中文字幕中文在线不卡住| 青青国产91久久久久久| 精品视频在线免费看| 亚洲免费av高清| 91在线观看视频| 中文字幕日韩av资源站| 国产suv精品一区二区883| 日韩精品一区二区三区中文不卡| 久久免费看少妇高潮| 亚洲夂夂婷婷色拍ww47| 成人网页在线观看| 久久午夜国产精品| 国产精品亚洲一区二区三区妖精| 中文字幕免费一区| 欧美精品18+| 不卡视频一二三| 免费精品视频最新在线| 综合在线观看色| 日韩亚洲国产中文字幕欧美| 亚洲午夜激情av| 7777精品久久久大香线蕉| 国产精品国产三级国产三级人妇| 国产91精品一区二区| 欧美一级二级三级蜜桃| 日韩电影在线看| 欧美一区二区三区啪啪| 国产精品丝袜久久久久久app| 国产精品系列在线播放| 亚洲精品国产成人久久av盗摄| 在线观看日韩电影| 国产suv精品一区二区883| 日韩精品久久理论片| 国产精品电影院| 亚洲国产精品成人综合| 91网站最新地址| 成人黄色大片在线观看| 久久婷婷成人综合色| 九九**精品视频免费播放| 91精品国产丝袜白色高跟鞋| 天天综合网 天天综合色| 欧美视频中文字幕| 亚洲午夜久久久久久久久久久 | 亚洲国产精品久久人人爱| 成人国产精品免费观看视频| 中文一区在线播放| 国产精品资源在线| 国产三级三级三级精品8ⅰ区| 国内精品国产成人国产三级粉色| 欧美一级久久久| 麻豆国产精品777777在线| 午夜久久电影网| 青青青伊人色综合久久| 国产精品盗摄一区二区三区| 日韩欧美123| 午夜精品久久久久影视| 91精品国产色综合久久不卡电影 | 精品国产露脸精彩对白| 91成人国产精品| 国产精品国模大尺度视频| 欧美性三三影院| 在线观看亚洲精品视频| 精品制服美女久久| 一区二区在线观看不卡| 日本一区二区三区免费乱视频| 亚洲美女在线一区| 日韩国产欧美在线播放| 国产一区二区女| av一区二区三区| 欧美日韩免费不卡视频一区二区三区 | 欧美激情中文字幕一区二区| 成人ar影院免费观看视频| 视频一区二区欧美| 亚洲一区二区精品久久av| 一区二区三区在线视频免费观看 | 爽好久久久欧美精品| 一区二区免费在线| 国产精品久久影院| 久久影院电视剧免费观看| 久久久久久**毛片大全| 懂色中文一区二区在线播放| 老司机免费视频一区二区| 日产国产欧美视频一区精品| 午夜精品久久久久久久久久 | 亚洲手机成人高清视频| 国产蜜臀av在线一区二区三区| 欧美国产日本韩| 亚洲精选一二三| 亚洲激情网站免费观看| 免费在线观看日韩欧美| 国产福利一区二区三区| 国产成人免费高清| 88在线观看91蜜桃国自产| 久久久久综合网| 亚洲一区二区在线免费观看视频| 亚洲欧洲成人自拍| 老司机一区二区| 欧美视频三区在线播放| 精品视频免费在线| 亚洲精品一区二区在线观看| 亚洲精品老司机| 日日噜噜夜夜狠狠视频欧美人| 精品制服美女丁香| 日韩一区二区在线观看视频播放| 91久久精品一区二区三区| 国产成人丝袜美腿| 97超碰欧美中文字幕| 成人白浆超碰人人人人| 成人av先锋影音| 91精品国产入口| 国产欧美日韩久久| 日韩av一区二区在线影视| 成人精品视频一区二区三区尤物| 欧美日韩国产另类一区| 亚洲人成网站在线| 欧美午夜片在线看| 成人免费在线观看入口| 亚洲国产精品久久艾草纯爱| 日韩av一级片| 精品亚洲porn| 色狠狠一区二区| 欧美激情在线一区二区三区| 国产盗摄一区二区| 日韩欧美一卡二卡| 日韩理论片在线| 国产在线播精品第三| 欧美一区二区三区喷汁尤物| 亚洲一区二区五区| 欧美三日本三级三级在线播放| 亚洲婷婷综合色高清在线| aaa国产一区| 亚洲综合男人的天堂| 欧美一区二区三区四区五区| 日本欧美一区二区三区乱码| 日韩欧美区一区二| 国产大片一区二区| 亚洲欧美成aⅴ人在线观看| 欧美中文字幕不卡|