use of com.github.anba.es6draft.runtime.types.builtins.ArrayObject in project es6draft by anba.
the class ReflectParser method visit.
@Override
public Object visit(NewExpression node, Void value) {
Object callee = node.getExpression().accept(this, value);
ArrayObject arguments = createList(node.getArguments(), value);
if (hasBuilder(Type.NewExpression)) {
return call(Type.NewExpression, node, callee, arguments);
}
OrdinaryObject expression = createExpression(node, Type.NewExpression);
addProperty(expression, "callee", callee);
addProperty(expression, "arguments", arguments);
return expression;
}
use of com.github.anba.es6draft.runtime.types.builtins.ArrayObject in project es6draft by anba.
the class ReflectParser method visit.
@Override
public Object visit(VariableStatement node, Void value) {
ArrayObject declarations = createList(node.getElements(), value);
String kind = "var";
if (hasBuilder(Type.VariableDeclaration)) {
return call(Type.VariableDeclaration, node, kind, declarations);
}
OrdinaryObject declaration = createDeclaration(node, Type.VariableDeclaration);
addProperty(declaration, "declarations", declarations);
addProperty(declaration, "kind", kind);
return declaration;
}
use of com.github.anba.es6draft.runtime.types.builtins.ArrayObject in project es6draft by anba.
the class ReflectParser method visit.
@Override
public Object visit(ArrayAssignmentPattern node, Void value) {
ArrayObject elements = createList(node.getElements(), value);
if (hasBuilder(Type.ArrayPattern)) {
return call(Type.ArrayPattern, node, elements);
}
OrdinaryObject pattern = createPattern(node, Type.ArrayPattern);
addProperty(pattern, "elements", elements);
return pattern;
}
use of com.github.anba.es6draft.runtime.types.builtins.ArrayObject in project es6draft by anba.
the class ReflectParser method visit.
@Override
public Object visit(FunctionExpression node, Void value) {
Object id = acceptOrNull(node.getIdentifier(), value);
ArrayObject params = createList(getParameterBindings(node.getParameters()), value);
ArrayObject defaults = createListWithNull(getParameterDefaults(node.getParameters()), value);
Object rest = acceptOrNull(getRestParameter(node.getParameters()), value);
Object body = createFunctionBody(node, value);
boolean generator = false;
boolean expression = false;
if (hasBuilder(Type.FunctionExpression)) {
return call(Type.FunctionExpression, node, id, params, body, generator, expression);
}
OrdinaryObject function = createFunction(node, Type.FunctionExpression);
addProperty(function, "id", id);
addProperty(function, "params", params);
addProperty(function, "defaults", defaults);
addProperty(function, "body", body);
addProperty(function, "rest", rest);
addProperty(function, "generator", generator);
addProperty(function, "expression", expression);
return function;
}
use of com.github.anba.es6draft.runtime.types.builtins.ArrayObject in project es6draft by anba.
the class ReflectParser method visit.
@Override
public Object visit(SuperCallExpression node, Void value) {
Object callee = superNode(node);
ArrayObject arguments = createList(node.getArguments(), value);
if (hasBuilder(Type.CallExpression)) {
return call(Type.CallExpression, node, callee, arguments);
}
OrdinaryObject expression = createExpression(node, Type.CallExpression);
addProperty(expression, "callee", callee);
addProperty(expression, "arguments", arguments);
return expression;
}
Aggregations