diff --git a/src/core-tags/core/await/renderer.js b/src/core-tags/core/await/renderer.js
index 46120f1c3..5d03b82d7 100644
--- a/src/core-tags/core/await/renderer.js
+++ b/src/core-tags/core/await/renderer.js
@@ -186,8 +186,10 @@ module.exports = function awaitTag(input, out) {
}
if (err) {
- if (errorRenderer) {
- errorRenderer(asyncOut, err);
+ if (input.catch) {
+ if (errorRenderer) {
+ errorRenderer(asyncOut, err);
+ }
} else {
asyncOut.error(err);
}
diff --git a/test/render/fixtures/await-error-empty-catch/expected.html b/test/render/fixtures/await-error-empty-catch/expected.html
new file mode 100644
index 000000000..9c9e66b80
--- /dev/null
+++ b/test/render/fixtures/await-error-empty-catch/expected.html
@@ -0,0 +1 @@
+BEFORE AFTER
\ No newline at end of file
diff --git a/test/render/fixtures/await-error-empty-catch/template.marko b/test/render/fixtures/await-error-empty-catch/template.marko
new file mode 100644
index 000000000..eed7fe079
--- /dev/null
+++ b/test/render/fixtures/await-error-empty-catch/template.marko
@@ -0,0 +1,8 @@
+---
+BEFORE
+
+ <@then|testData|>Success!@then>
+ <@catch/>
+
+AFTER
+---
\ No newline at end of file
diff --git a/test/render/fixtures/await-error-empty-catch/vdom-expected.html b/test/render/fixtures/await-error-empty-catch/vdom-expected.html
new file mode 100644
index 000000000..ba3fd84c6
--- /dev/null
+++ b/test/render/fixtures/await-error-empty-catch/vdom-expected.html
@@ -0,0 +1 @@
+"BEFORE AFTER"
diff --git a/test/render/fixtures/await-error-no-catch/template.marko b/test/render/fixtures/await-error-no-catch/template.marko
new file mode 100644
index 000000000..4a1f29fbc
--- /dev/null
+++ b/test/render/fixtures/await-error-no-catch/template.marko
@@ -0,0 +1,7 @@
+---
+BEFORE
+
+ <@then|testData|>Success!@then>
+
+AFTER
+---
\ No newline at end of file
diff --git a/test/render/fixtures/await-error-no-catch/test.js b/test/render/fixtures/await-error-no-catch/test.js
new file mode 100644
index 000000000..aed3f880a
--- /dev/null
+++ b/test/render/fixtures/await-error-no-catch/test.js
@@ -0,0 +1,8 @@
+var expect = require("chai").expect;
+
+exports.templateData = {};
+
+exports.checkError = function(e) {
+ var message = e.toString();
+ expect(message).to.contain("Something went wrong");
+};
diff --git a/test/render/index.test.js b/test/render/index.test.js
index 0cd8a300f..c0fd27d43 100644
--- a/test/render/index.test.js
+++ b/test/render/index.test.js
@@ -78,9 +78,11 @@ async function runRenderTest(fixture) {
let e;
try {
- isVDOM
+ let template = isVDOM
? browser.require(templatePath)
: marko.load(templatePath, loadOptions);
+ let templateData = Object.assign({}, main.templateData || {});
+ await template.render(templateData);
} catch (_e) {
e = _e;
let errorFile = path.join(dir, "error.txt");