From ba9f353c4a7b05bfcac67053820dca708fac01e8 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 10 Jan 2014 11:43:45 -0800 Subject: [PATCH] Use precompile pattern when available --- src/key-binding.coffee | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/key-binding.coffee b/src/key-binding.coffee index 12fc07266..d5a12e4ef 100644 --- a/src/key-binding.coffee +++ b/src/key-binding.coffee @@ -1,7 +1,6 @@ _ = require 'underscore-plus' fs = require 'fs-plus' {specificity} = require 'clear-cut' -PEG = require 'pegjs' ### Internal ### @@ -19,11 +18,15 @@ class KeyBinding normalizedKeystroke.join(' ') @parseKeystroke: (keystroke) -> - unless KeyBinding.parser? - keystrokePattern = fs.readFileSync(require.resolve('./keystroke-pattern.pegjs'), 'utf8') - KeyBinding.parser = PEG.buildParser(keystrokePattern) + unless @parser? + try + @parser = require './keystroke-pattern' + catch + keystrokePattern = fs.readFileSync(require.resolve('./keystroke-pattern.pegjs'), 'utf8') + PEG = require 'pegjs' + @parser = PEG.buildParser(keystrokePattern) - KeyBinding.parser.parse(keystroke) + @parser.parse(keystroke) constructor: (source, command, keystroke, selector) -> @source = source