From d5592d5829ae95cb59e8224223ad961520141f09 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 29 Dec 2015 08:47:11 +0100 Subject: [PATCH] optimize glob.match call - do not use try/catch in function body as it prevents method optimization in V8 - skip over disabled expressions --- src/vs/base/common/glob.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/vs/base/common/glob.ts b/src/vs/base/common/glob.ts index f41b183f6f0..8f4259a8eb2 100644 --- a/src/vs/base/common/glob.ts +++ b/src/vs/base/common/glob.ts @@ -261,11 +261,8 @@ export function match(arg1: string|IExpression, path: string, siblings?: string[ // Glob with String if (typeof arg1 === 'string') { - try { - return globToRegExp(arg1).test(path); - } catch (error) { - return false; // ignore pattern if the regex is invalid - } + var regExp = globToRegExp(arg1); + return regExp && regExp.test(path); } // Glob with Expression @@ -277,16 +274,16 @@ function matchExpression(expression: IExpression, path: string, siblings?: strin for (let i = 0; i < patterns.length; i++) { let pattern = patterns[i]; + let value = expression[pattern]; + if (value === false) { + continue; // pattern is disabled + } + // Pattern matches path if (match(pattern, path)) { - let value = expression[pattern]; // Expression Pattern is if (typeof value === 'boolean') { - if (value === false) { - continue; // pattern is disabled - } - return pattern; } -- GitLab