diff --git a/src/com/google/javascript/jscomp/ExportTestFunctions.java b/src/com/google/javascript/jscomp/ExportTestFunctions.java index 4996a7de3a8..c57e6b864be 100644 --- a/src/com/google/javascript/jscomp/ExportTestFunctions.java +++ b/src/com/google/javascript/jscomp/ExportTestFunctions.java @@ -123,7 +123,7 @@ private void exportClass(Node scriptNode, Node classNode) { exportClass(scriptNode, classNode, className, classNode); } - private void exportClass(Node scriptNode, Node classNode, String className, Node baseNode) { + private void exportClass(Node scriptNode, Node classNode, String className, Node addAfter) { Node classMembers = classNode.getLastChild(); for (Node maybeMemberFunctionDef : classMembers.children()) { if (maybeMemberFunctionDef.isMemberFunctionDef()) { @@ -148,8 +148,9 @@ private void exportClass(Node scriptNode, Node classNode, String className, Node Node expression = IR.exprResult(call); - scriptNode.addChildAfter(expression, baseNode); + scriptNode.addChildAfter(expression, addAfter); compiler.reportChangeToEnclosingScope(expression); + addAfter = expression; } } } diff --git a/test/com/google/javascript/jscomp/ExportTestFunctionsTest.java b/test/com/google/javascript/jscomp/ExportTestFunctionsTest.java index 75bb1c12f00..a2c76d81568 100644 --- a/test/com/google/javascript/jscomp/ExportTestFunctionsTest.java +++ b/test/com/google/javascript/jscomp/ExportTestFunctionsTest.java @@ -245,12 +245,12 @@ public void testEs6Class_lifeCycleMethods() { "class MyTest {" + "testFoo(){} setUp(){} tearDown(){} setUpPage(){} tearDownPage(){} notExported(){}" + "}" + + "google_exportProperty(MyTest.prototype, 'testFoo', MyTest.prototype.testFoo);" + + "google_exportProperty(MyTest.prototype, 'setUp', MyTest.prototype.setUp);" + + "google_exportProperty(MyTest.prototype, 'tearDown', MyTest.prototype.tearDown);" + + "google_exportProperty(MyTest.prototype, 'setUpPage', MyTest.prototype.setUpPage);" + "google_exportProperty(MyTest.prototype, 'tearDownPage', " + "MyTest.prototype.tearDownPage);" - + "google_exportProperty(MyTest.prototype, 'setUpPage', MyTest.prototype.setUpPage);" - + "google_exportProperty(MyTest.prototype, 'tearDown', MyTest.prototype.tearDown);" - + "google_exportProperty(MyTest.prototype, 'setUp', MyTest.prototype.setUp);" - + "google_exportProperty(MyTest.prototype, 'testFoo', MyTest.prototype.testFoo);" + "goog.testing.testSuite(new MyTest());"); }