Emit loop statement.

This CL emits the loop statement from the WGSL generator.

Bug: tint:4
Change-Id: I45be066ed306a71df053f7e61e6201a10a3d1056
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/17283
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/ast/loop_statement_test.cc b/src/ast/loop_statement_test.cc
index d49636f..09455da 100644
--- a/src/ast/loop_statement_test.cc
+++ b/src/ast/loop_statement_test.cc
@@ -60,6 +60,25 @@
   EXPECT_TRUE(l.IsLoop());
 }
 
+TEST_F(LoopStatementTest, HasContinuing_WithoutContinuing) {
+  std::vector<std::unique_ptr<Statement>> body;
+  body.push_back(std::make_unique<KillStatement>());
+
+  LoopStatement l(std::move(body), {});
+  EXPECT_FALSE(l.has_continuing());
+}
+
+TEST_F(LoopStatementTest, HasContinuing_WithContinuing) {
+  std::vector<std::unique_ptr<Statement>> body;
+  body.push_back(std::make_unique<KillStatement>());
+
+  std::vector<std::unique_ptr<Statement>> continuing;
+  continuing.push_back(std::make_unique<NopStatement>());
+
+  LoopStatement l(std::move(body), std::move(continuing));
+  EXPECT_TRUE(l.has_continuing());
+}
+
 TEST_F(LoopStatementTest, IsValid) {
   std::vector<std::unique_ptr<Statement>> body;
   body.push_back(std::make_unique<KillStatement>());