use of com.github.anba.es6draft.compiler.CodeVisitor.OutlinedCall in project es6draft by anba.
the class PropertyGenerator method visit.
@Override
public ValType visit(PropertyDefinitionsMethod node, CodeVisitor mv) {
// Sync array indices on recompilation.
if (mv.isCompiled(node)) {
if (decorators.array != null) {
DecoratedMethods(node.getProperties(), method -> decorators.skip(method.getDecorators().size()));
}
}
// stack: [<object>] -> []
mv.enterVariableScope();
Variable<OrdinaryObject> object = mv.newVariable("object", OrdinaryObject.class);
mv.store(object);
OutlinedCall call = mv.compile(node, this::propertyDefinitions);
mv.invoke(call, false, object, decorators);
mv.exitVariableScope();
return null;
}
use of com.github.anba.es6draft.compiler.CodeVisitor.OutlinedCall in project es6draft by anba.
the class ExpressionGenerator method visit.
/**
* Extension: 'do-expressions'
*/
@Override
public ValType visit(DoExpression node, CodeVisitor mv) {
OutlinedCall call = mv.compile(node, this::doExpression);
mv.invoke(call, node.hasCompletion());
return node.hasCompletion() ? ValType.Any : ValType.Empty;
}
use of com.github.anba.es6draft.compiler.CodeVisitor.OutlinedCall in project es6draft by anba.
the class ExpressionGenerator method visit.
@Override
public ValType visit(ExpressionMethod node, CodeVisitor mv) {
OutlinedCall call = mv.compile(node, this::expressionMethod);
mv.invoke(call, true);
return ValType.Any;
}
Aggregations