diff --git a/js/js.ast/src/org/jetbrains/kotlin/js/backend/JsToStringGenerationVisitor.java b/js/js.ast/src/org/jetbrains/kotlin/js/backend/JsToStringGenerationVisitor.java index a0852511601..f40ed375b8b 100644 --- a/js/js.ast/src/org/jetbrains/kotlin/js/backend/JsToStringGenerationVisitor.java +++ b/js/js.ast/src/org/jetbrains/kotlin/js/backend/JsToStringGenerationVisitor.java @@ -1046,6 +1046,14 @@ public class JsToStringGenerationVisitor extends JsVisitor { popSourceInfo(); } + @Override + public void visitSingleLineComment(@NotNull JsSingleLineComment comment) { + p.print("//"); + p.print(comment.getText()); + needSemi = false; + newline(); + } + @Override public void visitDocComment(@NotNull JsDocComment comment) { boolean asSingleLine = comment.getTags().size() == 1; diff --git a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsSingleLineComment.kt b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsSingleLineComment.kt new file mode 100644 index 00000000000..b299b9237cb --- /dev/null +++ b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsSingleLineComment.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.js.backend.ast + +class JsSingleLineComment(val text: String) : SourceInfoAwareJsNode(), JsStatement { + override fun accept(visitor: JsVisitor) { + visitor.visitSingleLineComment(this) + } + + override fun acceptChildren(visitor: JsVisitor) { + } + + override fun traverse(visitor: JsVisitorWithContext, ctx: JsContext<*>) { + visitor.visit(this, ctx) + visitor.endVisit(this, ctx) + } + + override fun deepCopy() = this +} \ No newline at end of file diff --git a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitor.kt b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitor.kt index e9dadd6c5c6..123d3ad12c6 100644 --- a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitor.kt +++ b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitor.kt @@ -159,6 +159,9 @@ abstract class JsVisitor { open fun visitDocComment(comment: JsDocComment): Unit = visitElement(comment) + open fun visitSingleLineComment(comment: JsSingleLineComment): Unit = + visitElement(comment) + protected open fun visitElement(node: JsNode) { } } \ No newline at end of file diff --git a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitorWithContext.java b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitorWithContext.java index 8cee9abe85a..d51aabfce8b 100644 --- a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitorWithContext.java +++ b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitorWithContext.java @@ -207,6 +207,9 @@ public abstract class JsVisitorWithContext { public void endVisit(@NotNull JsVars x, @NotNull JsContext ctx) { } + public void endVisit(@NotNull JsSingleLineComment x, @NotNull JsContext ctx) { + } + public void endVisit(@NotNull JsWhile x, @NotNull JsContext ctx) { endVisit((JsLoop) x, ctx); } @@ -383,6 +386,10 @@ public abstract class JsVisitorWithContext { return visit((JsLoop) x, ctx); } + public boolean visit(@NotNull JsSingleLineComment x, @NotNull JsContext ctx) { + return true; + } + protected abstract T doAccept(T node); protected abstract JsExpression doAcceptLvalue(JsExpression expr);