summaryrefslogtreecommitdiff
path: root/test/parallel/test-vm-api-handles-getter-errors.js
diff options
context:
space:
mode:
authorTobias Nießen <tniessen@tnie.de>2018-01-02 13:12:41 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2018-01-05 02:30:33 +0100
commitfb6e980e1e3ad4ee48afeae4b567f00d50fc6630 (patch)
tree3d16f196078e7f58fce05dcbd35407cf5776b038 /test/parallel/test-vm-api-handles-getter-errors.js
parenta51944da0aeae65676a928c9473965c453e0e028 (diff)
downloadnode-new-fb6e980e1e3ad4ee48afeae4b567f00d50fc6630.tar.gz
test: rename regression tests
PR-URL: https://github.com/nodejs/node/pull/17948 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'test/parallel/test-vm-api-handles-getter-errors.js')
-rw-r--r--test/parallel/test-vm-api-handles-getter-errors.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/parallel/test-vm-api-handles-getter-errors.js b/test/parallel/test-vm-api-handles-getter-errors.js
new file mode 100644
index 0000000000..6a74fb29c1
--- /dev/null
+++ b/test/parallel/test-vm-api-handles-getter-errors.js
@@ -0,0 +1,35 @@
+'use strict';
+// Tests that vm.createScript and runInThisContext correctly handle errors
+// thrown by option property getters.
+// See https://github.com/nodejs/node/issues/12369.
+
+const common = require('../common');
+const assert = require('assert');
+const execFile = require('child_process').execFile;
+
+const scripts = [];
+
+['filename', 'cachedData', 'produceCachedData', 'lineOffset', 'columnOffset']
+ .forEach((prop) => {
+ scripts.push(`vm.createScript('', {
+ get ${prop} () {
+ throw new Error('xyz');
+ }
+ })`);
+ });
+
+['breakOnSigint', 'timeout', 'displayErrors']
+ .forEach((prop) => {
+ scripts.push(`vm.createScript('').runInThisContext({
+ get ${prop} () {
+ throw new Error('xyz');
+ }
+ })`);
+ });
+
+scripts.forEach((script) => {
+ const node = process.execPath;
+ execFile(node, [ '-e', script ], common.mustCall((err, stdout, stderr) => {
+ assert(stderr.includes('Error: xyz'), 'createScript crashes');
+ }));
+});