Memoize Rule.prototype.getIncludedPatterns to shave a cheap 2% off profile

This commit is contained in:
Nathan Sobo
2012-09-25 17:49:51 -06:00
parent 8328875021
commit 1f8ce50261

View File

@@ -76,12 +76,14 @@ class Rule
getIncludedPatterns: (included=[]) ->
return [] if _.include(included, this)
included.push(this)
allPatterns = []
return @allPatterns if @allPatterns
included = included.concat([this])
@allPatterns = []
for pattern in @patterns
allPatterns.push(pattern.getIncludedPatterns(included)...)
allPatterns
@allPatterns.push(pattern.getIncludedPatterns(included)...)
@allPatterns
getNextTokens: (stack, line, position) ->
patterns = @getIncludedPatterns()