From 97d92c9d8b4cf58eb59a282be0383426a9620d02 Mon Sep 17 00:00:00 2001 From: David Majda Date: Wed, 14 Sep 2016 11:09:53 +0200 Subject: [PATCH] Don't use "objects" in lib/compiler/index.js The "objects" module will be removed. See #442. --- lib/compiler/index.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/compiler/index.js b/lib/compiler/index.js index f0b02bf..03fcf32 100644 --- a/lib/compiler/index.js +++ b/lib/compiler/index.js @@ -1,6 +1,20 @@ "use strict"; -let objects = require("../utils/objects"); +function processOptions(options, defaults) { + let processedOptions = {}; + + Object.keys(options).forEach(name => { + processedOptions[name] = options[name]; + }); + + Object.keys(defaults).forEach(name => { + if (!processedOptions.hasOwnProperty(name)) { + processedOptions[name] = defaults[name]; + } + }); + + return processedOptions; +} let compiler = { /* @@ -42,8 +56,7 @@ let compiler = { compile: function(ast, passes, options) { options = options !== undefined ? options : {}; - options = objects.clone(options); - objects.defaults(options, { + options = processOptions(options, { allowedStartRules: [ast.rules[0].name], cache: false, dependencies: {},