From b710af6baeb3777567b4c4b8207e0274ebec1288 Mon Sep 17 00:00:00 2001 From: Jacob Parker Date: Sun, 2 Apr 2017 10:21:45 +0100 Subject: [PATCH] Remove for-of loops (fixes #31) --- src/TokenStream.js | 5 ++--- src/transforms/util.js | 17 ++++++++--------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/TokenStream.js b/src/TokenStream.js index 560fd33..bcbb70f 100644 --- a/src/TokenStream.js +++ b/src/TokenStream.js @@ -23,8 +23,8 @@ module.exports = class TokenStream { if (!node) return null; - /* eslint-disable no-restricted-syntax */ - for (const tokenDescriptor of tokenDescriptors) { + for (let i = 0; i < tokenDescriptors.length; i += 1) { + const tokenDescriptor = tokenDescriptors[i]; const value = tokenDescriptor(node); if (value !== null) { @@ -34,7 +34,6 @@ module.exports = class TokenStream { return value; } } - /* eslint-enable */ return null; } diff --git a/src/transforms/util.js b/src/transforms/util.js index da7f4e1..2a0304c 100644 --- a/src/transforms/util.js +++ b/src/transforms/util.js @@ -45,17 +45,16 @@ module.exports.anyOrderFactory = (properties, delim = SPACE) => (tokenStream) => while (numParsed < propertyNames.length && tokenStream.hasTokens()) { if (numParsed) tokenStream.expect(delim); - let didMatch = false; - for (const propertyName of propertyNames) { // eslint-disable-line - if (values[propertyName] === undefined && tokenStream.match(properties[propertyName].token)) { - values[propertyName] = tokenStream.lastValue; - didMatch = true; - break; - } + const matchedPropertyName = propertyNames.find(propertyName => ( + values[propertyName] === undefined && tokenStream.match(properties[propertyName].token) + )); + + if (!matchedPropertyName) { + tokenStream.throw(); + } else { + values[matchedPropertyName] = tokenStream.lastValue; } - if (!didMatch) tokenStream.throw(); - numParsed += 1; }