class IRFactory.TransformDispatcher {
@Override
Node processObjectLiteral(ObjectLiteral literalNode) {
if (literalNode.isDestructuring()) {
reportDestructuringAssign(literalNode);
}
Node node = newNode(Token.OBJECTLIT);
for (ObjectProperty el : literalNode.getElements()) {
if (!config.acceptES5) {
if (el.isGetter()) {
reportGetter(el);
continue;
} else if (el.isSetter()) {
reportSetter(el);
continue;
}
}
Node key = transformAsString(el.getLeft());
if (el.isGetter()) {
key.setType(Token.GET);
} else if (el.isSetter()) {
key.setType(Token.SET);
}
key.addChildToFront(transform(el.getRight()));
node.addChildToBack(key);
}
return node;
}
}
|