Package org.lilystudio.javascript.expression

Examples of org.lilystudio.javascript.expression.ArrayLiteral


    case Token.REGEXP:
      return new RegexpLiteral(node, root, scope);

    case Token.ARRAYLIT:
      return new ArrayLiteral(node, root, scope);

    case Token.OBJECTLIT:
      return new ObjectLiteral(node, root, scope);

    case Token.GETPROP:
    case Token.GETELEM:
      return new MemberExpression(node, root, scope);

    case Token.CALL:
    case Token.NEW: {
      Node firstChild = node.getFirstChild();
      if (firstChild.getType() == Token.NAME) {
        String target = firstChild.getString();
        Node next = firstChild.getNext();
        if (target.equals("Object")) {
          // Object类不需要使用new
          node.setType(Token.CALL);
          if (next == null) {
            return new ObjectLiteral(node.getLineno());
          }
        } else if (target.equals("Array")) {
          // Array类可以使用[]代替
          node.setType(Token.CALL);
          if (next == null
              || (next.getType() == Token.NUMBER && next.getDouble() == 0)
              || next.getNext() != null) {
            if (next != null && next.getType() == Token.NUMBER
                && next.getDouble() == 0) {
              node.removeChild(next);
            }
            node.removeChild(firstChild);
            return new ArrayLiteral(node, root, scope);
          }
        }
      }
      return new CallExpression(node, root, scope);
    }
View Full Code Here

TOP

Related Classes of org.lilystudio.javascript.expression.ArrayLiteral

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.