aboutsummaryrefslogtreecommitdiff
path: root/modules/core/virtual-fs.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/core/virtual-fs.js')
-rw-r--r--modules/core/virtual-fs.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/core/virtual-fs.js b/modules/core/virtual-fs.js
index c9eb7a3..a52a393 100644
--- a/modules/core/virtual-fs.js
+++ b/modules/core/virtual-fs.js
@@ -822,7 +822,10 @@ class VirtualFileSystem {
dir = resolved.dir;
}
const results = [];
- const regex = new RegExp(pattern, 'i');
+ // v4.6.64: an invalid pattern must not throw into the error ledger (packet §8).
+ let regex;
+ try { regex = new RegExp(pattern, 'i'); }
+ catch (e) { this._lastPatternError = e.message; return []; }
for (const name of Object.keys(dir.content)) {
const fullPath = path ? path + '/' + name : name;
if (regex.test(name)) {
@@ -836,7 +839,10 @@ class VirtualFileSystem {
}
grep(pattern, path = '') {
const results = [];
- const regex = new RegExp(pattern, 'i');
+ // v4.6.64: see find() above — a bad pattern is a result, not an exception.
+ let regex;
+ try { regex = new RegExp(pattern, 'i'); }
+ catch (e) { this._lastPatternError = e.message; return []; }
const files = this.find('.', path).filter(e => e.type === 'file');
for (const file of files) {
const content = this.readFile(file.path);