public JS visit(WriterVisitor<JS> visitor, InstanceOfTree tree, GenerationContext<JS> context) {
// build stjs.isInstanceOf(expr.constructor, type);
// TODO do I need a check or parenthesis around !?
TypeMirror type = context.getTrees().getTypeMirror(new TreePath(context.getCurrentPath(), tree.getType()));
JS getConstructor = context.js().property(visitor.scan(tree.getExpression(), context), JavascriptKeywords.CONSTRUCTOR);
JS targetInst = context.js().property(context.js().name("stjs"), "isInstanceOf");
JS typeName = context.js().name(context.getNames().getTypeName(context, type));
return context.js().functionCall(targetInst, Arrays.asList(getConstructor, typeName));
}