angular/tools/transpiler/src/codegeneration/InstanceOfTransformer.js
Victor Berchet 94958e084e fix(super): super() now means call the proto of the current function.
See https://github.com/google/traceur-
compiler/commit/6732e5eddf203ae02bcfb8faea837590bf32c061
2014-10-27 22:26:38 +01:00

26 lines
670 B
JavaScript

import {INSTANCEOF} from 'traceur/src/syntax/TokenType';
import {ParseTreeTransformer} from './ParseTreeTransformer';
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);
if (tree.operator.type === INSTANCEOF) {
return createBinaryExpression(tree.left, createOperatorToken('is'), tree.right);
}
return tree;
}
}