Class Es6RewriteClassExtendsExpressions

java.lang.Object
com.google.javascript.jscomp.Es6RewriteClassExtendsExpressions
All Implemented Interfaces:
CompilerPass, NodeTraversal.Callback

public final class Es6RewriteClassExtendsExpressions extends Object implements NodeTraversal.Callback, CompilerPass
Extracts ES6 class extends expressions and creates an alias.

Example: Before:

class Foo extends Bar() {}

After:

const $jscomp$classextends$var0 = Bar(); class Foo extends $jscomp$classextends$var0 {}

This must be done before Es6ConvertSuper, because that pass only handles extends clauses which are simple NAME or GETPROP nodes.

TODO(bradfordcsmith): This pass may no longer be necessary once the typechecker passes have all been updated to understand ES6 classes.