angular/tools/transpiler/src/codegeneration/InstanceOfTransformer.js

26 lines
670 B
JavaScript
Raw Normal View History

import {INSTANCEOF} from 'traceur/src/syntax/TokenType';
import {ParseTreeTransformer} from './ParseTreeTransformer';
2014-10-09 21:04:25 +00:00
import {
createBinaryExpression,
createOperatorToken
} from 'traceur/src/codegeneration/ParseTreeFactory';
/**
* Transforms `a instanceof b` to `a is b`,
*/
export class InstanceOfTransformer extends ParseTreeTransformer {
/**
* @param {BinaryExpression} tree
* @return {ParseTree}
*/
transformBinaryExpression(tree) {
tree = super.transformBinaryExpression(tree);
2014-10-09 21:04:25 +00:00
if (tree.operator.type === INSTANCEOF) {
return createBinaryExpression(tree.left, createOperatorToken('is'), tree.right);
}
return tree;
}
2014-10-09 21:04:25 +00:00
}