{"action":"created","comment":{"url":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/comments/108035951","pull_request_review_id":29047136,"id":108035951,"diff_hunk":"@@ -0,0 +1,1262 @@\n+(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n+module.exports=[\n+  {\n+    \"title\": \"Alice in Wonderland abc\",\n+    \"text\": \"Alice falls into a rabbit hole and enters a world full of imagination.\"\n+  },\n+\n+  {\n+    \"title\": \"The Lord of the Rings: The Fellowship of the Ring.\",\n+    \"text\": \"An unusual alliance of man, elf, dwarf, wizard and hobbit seek to destroy a powerful ring.\"\n+  }, \n+  {\n+    \"title\": \"Hello Barbie\",\n+    \"text\": \"I love cartoons\"\n+  }\n+]\n+\n+},{}],2:[function(require,module,exports){\n+module.exports=[\n+{\n+  \n+}\n+]\n+},{}],3:[function(require,module,exports){\n+module.exports=[\n+  {\n+    \"titles\": \"My name is mercy\",\n+    \"text\": \"Mercy loves programming, she is a Mathematician, she loves solving problems.\"\n+  },\n+\n+  {\n+    \"title\": \"The Lord of the Rings: The Fellowship of the Ring.\",\n+    \"texts\": \"An unusual alliance of man, elf, dwarf, wizard and hobbit seek to destroy a powerful ring.\"\n+  }\n+]\n+},{}],4:[function(require,module,exports){\n+module.exports=[\n+  {\n+    \"title\": \"I and You love\",\n+    \"text\": \"Hello dearie! How's it going love?\"\n+  },\n+  {\n+    \"title\": \"Cindy and Barbie\",\n+    \"text\": \"I love Cindarella and Barbie\"\n+  }\n+]\n+},{}],5:[function(require,module,exports){\n+/* eslint-disable no-undef */\n+\n+const values = require('object.values');  //  shim Object.values\n+const book = require('./allBooks/books.json');  //  book with valid contents\n+//  book with invalid content\n+const invalidTitleAndText = require('./allBooks/invalid.json');\n+//  book with valid content\n+const secondBook = require('./allBooks/newBook.json');\n+//  empty book\n+const emptyBook = require('./allBooks/empty.json');\n+\n+describe('invertedIndex Index', () => {\n+  const invertedIndex = new InvertedIndex();\n+  invertedIndex.createIndex('book.json', book);\n+  invertedIndex.createIndex('secondBook.json', secondBook);\n+\n+  describe('InvertedIndex class, check all methods', () => {\n+    it('should check that the class has a createIndex method', () => {\n+      expect(typeof invertedIndex.createIndex).toBe('function');\n+    });\n+\n+    it('should check that the class has a validateFile method', () => {\n+      expect(typeof invertedIndex.validateFile).toBe('function');\n+    });\n+\n+    it('should check that the class has a tokenize method', () => {\n+      expect(typeof invertedIndex.tokenize).toBe('function');\n+    });\n+\n+    it('should check that the class has a getIndex method', () => {\n+      expect(typeof invertedIndex.getIndex).toBe('function');\n+    });\n+\n+    it('should check that the class has a searchIndex method', () => {\n+      expect(typeof invertedIndex.searchIndex).toBe('function');\n+    });\n+\n+    it('should check that the class has a setIndex method', () => {\n+      expect(typeof invertedIndex.setIndex).toBe('function');\n+    });\n+  });\n+\n+  describe('validateFile should check files', () => {\n+    it('should check that the contents of the file to be uploaded is valid',\n+    () => {\n+      expect(invertedIndex.validateFile(book)).toBeTruthy();\n+    });\n+\n+    it('should return false for empty json files', () => {\n+      expect(invertedIndex.validateFile(emptyBook)).toBeFalsy();\n+    });\n+\n+    it('should return true if file has property \"title\" and \"text\" ', () => {\n+      expect(invertedIndex.validateFile(book)).toBeTruthy();\n+    });\n+\n+    it('should return false if file does not have property \"title\" and \"text\"',\n+     () => {\n+       expect(invertedIndex.validateFile(invalidTitleAndText)).toBeFalsy();\n+     });\n+  });\n+\n+  describe('Tokenize words', () => {\n+    it('should check that tokens are splitted and in sorted order', () => {\n+      let words = 'Hello Dear how are YOU';\n+      const expectedTokens = ['are', 'dear', 'hello', 'how', 'you'];\n+      words = invertedIndex.tokenize(words);\n+      expect(expectedTokens).toEqual(words);\n+    });\n+  });\n+\n+  describe('Generate Index', () => {\n+    it('should verify that index has been created', () => {\n+      expect(Object.keys(invertedIndex.getIndex('book.json')).length)\n+      .toBeGreaterThan(0);\n+    });\n+\n+    it('should check that index maps the string to the correct objects in json'\n+     + ' array', () => {\n+      const expectedIndex = {\n+        and: [0, 1],\n+        barbie: [1],\n+        cindarella: [1],\n+        cindy: [1],\n+        dearie: [0],\n+        going: [0],\n+        hello: [0],\n+        how: [0],\n+        i: [0, 1],\n+        it: [0],\n+        love: [0, 1],\n+        s: [0],\n+        you: [0]\n+      };\n+      let result = {};\n+      result = invertedIndex.getIndex('secondBook.json');\n+      expect(Object.keys(result)).toEqual(Object.keys(expectedIndex));\n+      expect(values(result)).toEqual(values(expectedIndex));\n+    });\n+  });\n+\n+  describe('Search index', () => {\n+    it('should search through single files that are indexed', () => {\n+      const expectedResult = {\n+        'secondBook.json':\n+        {\n+          barbie: [1],\n+          and: [0, 1],\n+          cindarella: [1],\n+          dearie: [0]\n+        }\n+      };\n+      let search = {};\n+      search = invertedIndex.searchIndex('barbie, mercy and cindarella dearie',\n+      'secondBook.json');\n+      expect(Object.keys(search)).toEqual(Object.keys(expectedResult));\n+      expect(values(expectedResult)).toEqual(values(expectedResult));\n+    });\n+  });\n+});\n+\n+},{\"./allBooks/books.json\":1,\"./allBooks/empty.json\":2,\"./allBooks/invalid.json\":3,\"./allBooks/newBook.json\":4,\"object.values\":30}],6:[function(require,module,exports){\n+'use strict';\n+\n+var keys = require('object-keys');\n+var foreach = require('foreach');\n+var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n+\n+var toStr = Object.prototype.toString;\n+\n+var isFunction = function (fn) {\n+\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n+};\n+\n+var arePropertyDescriptorsSupported = function () {\n+\tvar obj = {};\n+\ttry {\n+\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n+        /* eslint-disable no-unused-vars, no-restricted-syntax */\n+        for (var _ in obj) { return false; }\n+        /* eslint-enable no-unused-vars, no-restricted-syntax */\n+\t\treturn obj.x === obj;\n+\t} catch (e) { /* this is IE 8. */\n+\t\treturn false;\n+\t}\n+};\n+var supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n+\n+var defineProperty = function (object, name, value, predicate) {\n+\tif (name in object && (!isFunction(predicate) || !predicate())) {\n+\t\treturn;\n+\t}\n+\tif (supportsDescriptors) {\n+\t\tObject.defineProperty(object, name, {\n+\t\t\tconfigurable: true,\n+\t\t\tenumerable: false,\n+\t\t\tvalue: value,\n+\t\t\twritable: true\n+\t\t});\n+\t} else {\n+\t\tobject[name] = value;\n+\t}\n+};\n+\n+var defineProperties = function (object, map) {\n+\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n+\tvar props = keys(map);\n+\tif (hasSymbols) {\n+\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n+\t}\n+\tforeach(props, function (name) {\n+\t\tdefineProperty(object, name, map[name], predicates[name]);\n+\t});\n+};\n+\n+defineProperties.supportsDescriptors = !!supportsDescriptors;\n+\n+module.exports = defineProperties;\n+\n+},{\"foreach\":21,\"object-keys\":7}],7:[function(require,module,exports){\n+'use strict';\n+\n+// modified from https://github.com/es-shims/es5-shim\n+var has = Object.prototype.hasOwnProperty;\n+var toStr = Object.prototype.toString;\n+var slice = Array.prototype.slice;\n+var isArgs = require('./isArguments');\n+var isEnumerable = Object.prototype.propertyIsEnumerable;\n+var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n+var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n+var dontEnums = [\n+\t'toString',\n+\t'toLocaleString',\n+\t'valueOf',\n+\t'hasOwnProperty',\n+\t'isPrototypeOf',\n+\t'propertyIsEnumerable',\n+\t'constructor'\n+];\n+var equalsConstructorPrototype = function (o) {\n+\tvar ctor = o.constructor;\n+\treturn ctor && ctor.prototype === o;\n+};\n+var excludedKeys = {\n+\t$console: true,\n+\t$external: true,\n+\t$frame: true,\n+\t$frameElement: true,\n+\t$frames: true,\n+\t$innerHeight: true,\n+\t$innerWidth: true,\n+\t$outerHeight: true,\n+\t$outerWidth: true,\n+\t$pageXOffset: true,\n+\t$pageYOffset: true,\n+\t$parent: true,\n+\t$scrollLeft: true,\n+\t$scrollTop: true,\n+\t$scrollX: true,\n+\t$scrollY: true,\n+\t$self: true,\n+\t$webkitIndexedDB: true,\n+\t$webkitStorageInfo: true,\n+\t$window: true\n+};\n+var hasAutomationEqualityBug = (function () {\n+\t/* global window */\n+\tif (typeof window === 'undefined') { return false; }\n+\tfor (var k in window) {\n+\t\ttry {\n+\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n+\t\t\t\ttry {\n+\t\t\t\t\tequalsConstructorPrototype(window[k]);\n+\t\t\t\t} catch (e) {\n+\t\t\t\t\treturn true;\n+\t\t\t\t}\n+\t\t\t}\n+\t\t} catch (e) {\n+\t\t\treturn true;\n+\t\t}\n+\t}\n+\treturn false;\n+}());\n+var equalsConstructorPrototypeIfNotBuggy = function (o) {\n+\t/* global window */\n+\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n+\t\treturn equalsConstructorPrototype(o);\n+\t}\n+\ttry {\n+\t\treturn equalsConstructorPrototype(o);\n+\t} catch (e) {\n+\t\treturn false;\n+\t}\n+};\n+\n+var keysShim = function keys(object) {\n+\tvar isObject = object !== null && typeof object === 'object';\n+\tvar isFunction = toStr.call(object) === '[object Function]';\n+\tvar isArguments = isArgs(object);\n+\tvar isString = isObject && toStr.call(object) === '[object String]';\n+\tvar theKeys = [];\n+\n+\tif (!isObject && !isFunction && !isArguments) {\n+\t\tthrow new TypeError('Object.keys called on a non-object');\n+\t}\n+\n+\tvar skipProto = hasProtoEnumBug && isFunction;\n+\tif (isString && object.length > 0 && !has.call(object, 0)) {\n+\t\tfor (var i = 0; i < object.length; ++i) {\n+\t\t\ttheKeys.push(String(i));\n+\t\t}\n+\t}\n+\n+\tif (isArguments && object.length > 0) {\n+\t\tfor (var j = 0; j < object.length; ++j) {\n+\t\t\ttheKeys.push(String(j));\n+\t\t}\n+\t} else {\n+\t\tfor (var name in object) {\n+\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n+\t\t\t\ttheKeys.push(String(name));\n+\t\t\t}\n+\t\t}\n+\t}\n+\n+\tif (hasDontEnumBug) {\n+\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n+\n+\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n+\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n+\t\t\t\ttheKeys.push(dontEnums[k]);\n+\t\t\t}\n+\t\t}\n+\t}\n+\treturn theKeys;\n+};\n+\n+keysShim.shim = function shimObjectKeys() {\n+\tif (Object.keys) {\n+\t\tvar keysWorksWithArguments = (function () {\n+\t\t\t// Safari 5.0 bug\n+\t\t\treturn (Object.keys(arguments) || '').length === 2;\n+\t\t}(1, 2));\n+\t\tif (!keysWorksWithArguments) {\n+\t\t\tvar originalKeys = Object.keys;\n+\t\t\tObject.keys = function keys(object) {\n+\t\t\t\tif (isArgs(object)) {\n+\t\t\t\t\treturn originalKeys(slice.call(object));\n+\t\t\t\t} else {\n+\t\t\t\t\treturn originalKeys(object);\n+\t\t\t\t}\n+\t\t\t};\n+\t\t}\n+\t} else {\n+\t\tObject.keys = keysShim;\n+\t}\n+\treturn Object.keys || keysShim;\n+};\n+\n+module.exports = keysShim;\n+\n+},{\"./isArguments\":8}],8:[function(require,module,exports){\n+'use strict';\n+\n+var toStr = Object.prototype.toString;\n+\n+module.exports = function isArguments(value) {\n+\tvar str = toStr.call(value);\n+\tvar isArgs = str === '[object Arguments]';\n+\tif (!isArgs) {\n+\t\tisArgs = str !== '[object Array]' &&\n+\t\t\tvalue !== null &&\n+\t\t\ttypeof value === 'object' &&\n+\t\t\ttypeof value.length === 'number' &&\n+\t\t\tvalue.length >= 0 &&\n+\t\t\ttoStr.call(value.callee) === '[object Function]';\n+\t}\n+\treturn isArgs;\n+};\n+\n+},{}],9:[function(require,module,exports){\n+'use strict';\n+\n+var $isNaN = require('./helpers/isNaN');\n+var $isFinite = require('./helpers/isFinite');\n+\n+var sign = require('./helpers/sign');\n+var mod = require('./helpers/mod');\n+\n+var IsCallable = require('is-callable');\n+var toPrimitive = require('es-to-primitive/es5');\n+\n+// https://es5.github.io/#x9\n+var ES5 = {\n+\tToPrimitive: toPrimitive,\n+\n+\tToBoolean: function ToBoolean(value) {\n+\t\treturn Boolean(value);\n+\t},\n+\tToNumber: function ToNumber(value) {\n+\t\treturn Number(value);\n+\t},\n+\tToInteger: function ToInteger(value) {\n+\t\tvar number = this.ToNumber(value);\n+\t\tif ($isNaN(number)) { return 0; }\n+\t\tif (number === 0 || !$isFinite(number)) { return number; }\n+\t\treturn sign(number) * Math.floor(Math.abs(number));\n+\t},\n+\tToInt32: function ToInt32(x) {\n+\t\treturn this.ToNumber(x) >> 0;\n+\t},\n+\tToUint32: function ToUint32(x) {\n+\t\treturn this.ToNumber(x) >>> 0;\n+\t},\n+\tToUint16: function ToUint16(value) {\n+\t\tvar number = this.ToNumber(value);\n+\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n+\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n+\t\treturn mod(posInt, 0x10000);\n+\t},\n+\tToString: function ToString(value) {\n+\t\treturn String(value);\n+\t},\n+\tToObject: function ToObject(value) {\n+\t\tthis.CheckObjectCoercible(value);\n+\t\treturn Object(value);\n+\t},\n+\tCheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n+\t\t/* jshint eqnull:true */\n+\t\tif (value == null) {\n+\t\t\tthrow new TypeError(optMessage || 'Cannot call method on ' + value);\n+\t\t}\n+\t\treturn value;\n+\t},\n+\tIsCallable: IsCallable,\n+\tSameValue: function SameValue(x, y) {\n+\t\tif (x === y) { // 0 === -0, but they are not identical.\n+\t\t\tif (x === 0) { return 1 / x === 1 / y; }\n+\t\t\treturn true;\n+\t\t}\n+\t\treturn $isNaN(x) && $isNaN(y);\n+\t},\n+\n+\t// http://www.ecma-international.org/ecma-262/5.1/#sec-8\n+\tType: function Type(x) {\n+\t\tif (x === null) {\n+\t\t\treturn 'Null';\n+\t\t}\n+\t\tif (typeof x === 'undefined') {\n+\t\t\treturn 'Undefined';\n+\t\t}\n+\t\tif (typeof x === 'function' || typeof x === 'object') {\n+\t\t\treturn 'Object';\n+\t\t}\n+\t\tif (typeof x === 'number') {\n+\t\t\treturn 'Number';\n+\t\t}\n+\t\tif (typeof x === 'boolean') {\n+\t\t\treturn 'Boolean';\n+\t\t}\n+\t\tif (typeof x === 'string') {\n+\t\t\treturn 'String';\n+\t\t}\n+\t}\n+};\n+\n+module.exports = ES5;\n+\n+},{\"./helpers/isFinite\":13,\"./helpers/isNaN\":14,\"./helpers/mod\":16,\"./helpers/sign\":17,\"es-to-primitive/es5\":18,\"is-callable\":25}],10:[function(require,module,exports){\n+'use strict';\n+\n+var toStr = Object.prototype.toString;\n+var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n+var symbolToStr = hasSymbols ? Symbol.prototype.toString : toStr;\n+\n+var $isNaN = require('./helpers/isNaN');\n+var $isFinite = require('./helpers/isFinite');\n+var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n+\n+var assign = require('./helpers/assign');\n+var sign = require('./helpers/sign');\n+var mod = require('./helpers/mod');\n+var isPrimitive = require('./helpers/isPrimitive');\n+var toPrimitive = require('es-to-primitive/es6');\n+var parseInteger = parseInt;\n+var bind = require('function-bind');\n+var strSlice = bind.call(Function.call, String.prototype.slice);\n+var isBinary = bind.call(Function.call, RegExp.prototype.test, /^0b[01]+$/i);\n+var isOctal = bind.call(Function.call, RegExp.prototype.test, /^0o[0-7]+$/i);\n+var nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\n+var nonWSregex = new RegExp('[' + nonWS + ']', 'g');\n+var hasNonWS = bind.call(Function.call, RegExp.prototype.test, nonWSregex);\n+var invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\n+var isInvalidHexLiteral = bind.call(Function.call, RegExp.prototype.test, invalidHexLiteral);\n+\n+// whitespace from: http://es5.github.io/#x15.5.4.20\n+// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\n+var ws = [\n+\t'\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n+\t'\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n+\t'\\u2029\\uFEFF'\n+].join('');\n+var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\n+var replace = bind.call(Function.call, String.prototype.replace);\n+var trim = function (value) {\n+\treturn replace(value, trimRegex, '');\n+};\n+\n+var ES5 = require('./es5');\n+\n+var hasRegExpMatcher = require('is-regex');\n+\n+// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations\n+var ES6 = assign(assign({}, ES5), {\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args\n+\tCall: function Call(F, V) {\n+\t\tvar args = arguments.length > 2 ? arguments[2] : [];\n+\t\tif (!this.IsCallable(F)) {\n+\t\t\tthrow new TypeError(F + ' is not a function');\n+\t\t}\n+\t\treturn F.apply(V, args);\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive\n+\tToPrimitive: toPrimitive,\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean\n+\t// ToBoolean: ES5.ToBoolean,\n+\n+\t// http://www.ecma-international.org/ecma-262/6.0/#sec-tonumber\n+\tToNumber: function ToNumber(argument) {\n+\t\tvar value = isPrimitive(argument) ? argument : toPrimitive(argument, 'number');\n+\t\tif (typeof value === 'symbol') {\n+\t\t\tthrow new TypeError('Cannot convert a Symbol value to a number');\n+\t\t}\n+\t\tif (typeof value === 'string') {\n+\t\t\tif (isBinary(value)) {\n+\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 2));\n+\t\t\t} else if (isOctal(value)) {\n+\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 8));\n+\t\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n+\t\t\t\treturn NaN;\n+\t\t\t} else {\n+\t\t\t\tvar trimmed = trim(value);\n+\t\t\t\tif (trimmed !== value) {\n+\t\t\t\t\treturn this.ToNumber(trimmed);\n+\t\t\t\t}\n+\t\t\t}\n+\t\t}\n+\t\treturn Number(value);\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger\n+\t// ToInteger: ES5.ToNumber,\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32\n+\t// ToInt32: ES5.ToInt32,\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32\n+\t// ToUint32: ES5.ToUint32,\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16\n+\tToInt16: function ToInt16(argument) {\n+\t\tvar int16bit = this.ToUint16(argument);\n+\t\treturn int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16\n+\t// ToUint16: ES5.ToUint16,\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8\n+\tToInt8: function ToInt8(argument) {\n+\t\tvar int8bit = this.ToUint8(argument);\n+\t\treturn int8bit >= 0x80 ? int8bit - 0x100 : int8bit;\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8\n+\tToUint8: function ToUint8(argument) {\n+\t\tvar number = this.ToNumber(argument);\n+\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n+\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n+\t\treturn mod(posInt, 0x100);\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp\n+\tToUint8Clamp: function ToUint8Clamp(argument) {\n+\t\tvar number = this.ToNumber(argument);\n+\t\tif ($isNaN(number) || number <= 0) { return 0; }\n+\t\tif (number >= 0xFF) { return 0xFF; }\n+\t\tvar f = Math.floor(argument);\n+\t\tif (f + 0.5 < number) { return f + 1; }\n+\t\tif (number < f + 0.5) { return f; }\n+\t\tif (f % 2 !== 0) { return f + 1; }\n+\t\treturn f;\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring\n+\tToString: function ToString(argument) {\n+\t\tif (typeof argument === 'symbol') {\n+\t\t\tthrow new TypeError('Cannot convert a Symbol value to a string');\n+\t\t}\n+\t\treturn String(argument);\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject\n+\tToObject: function ToObject(value) {\n+\t\tthis.RequireObjectCoercible(value);\n+\t\treturn Object(value);\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey\n+\tToPropertyKey: function ToPropertyKey(argument) {\n+\t\tvar key = this.ToPrimitive(argument, String);\n+\t\treturn typeof key === 'symbol' ? symbolToStr.call(key) : this.ToString(key);\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n+\tToLength: function ToLength(argument) {\n+\t\tvar len = this.ToInteger(argument);\n+\t\tif (len <= 0) { return 0; } // includes converting -0 to +0\n+\t\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n+\t\treturn len;\n+\t},\n+\n+\t// http://www.ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring\n+\tCanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {\n+\t\tif (toStr.call(argument) !== '[object String]') {\n+\t\t\tthrow new TypeError('must be a string');\n+\t\t}\n+\t\tif (argument === '-0') { return -0; }\n+\t\tvar n = this.ToNumber(argument);\n+\t\tif (this.SameValue(this.ToString(n), argument)) { return n; }\n+\t\treturn void 0;\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible\n+\tRequireObjectCoercible: ES5.CheckObjectCoercible,\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray\n+\tIsArray: Array.isArray || function IsArray(argument) {\n+\t\treturn toStr.call(argument) === '[object Array]';\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable\n+\t// IsCallable: ES5.IsCallable,\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor\n+\tIsConstructor: function IsConstructor(argument) {\n+\t\treturn typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o\n+\tIsExtensible: function IsExtensible(obj) {\n+\t\tif (!Object.preventExtensions) { return true; }\n+\t\tif (isPrimitive(obj)) {\n+\t\t\treturn false;\n+\t\t}\n+\t\treturn Object.isExtensible(obj);\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger\n+\tIsInteger: function IsInteger(argument) {\n+\t\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n+\t\t\treturn false;\n+\t\t}\n+\t\tvar abs = Math.abs(argument);\n+\t\treturn Math.floor(abs) === abs;\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey\n+\tIsPropertyKey: function IsPropertyKey(argument) {\n+\t\treturn typeof argument === 'string' || typeof argument === 'symbol';\n+\t},\n+\n+\t// http://www.ecma-international.org/ecma-262/6.0/#sec-isregexp\n+\tIsRegExp: function IsRegExp(argument) {\n+\t\tif (!argument || typeof argument !== 'object') {\n+\t\t\treturn false;\n+\t\t}\n+\t\tif (hasSymbols) {\n+\t\t\tvar isRegExp = argument[Symbol.match];\n+\t\t\tif (typeof isRegExp !== 'undefined') {\n+\t\t\t\treturn ES5.ToBoolean(isRegExp);\n+\t\t\t}\n+\t\t}\n+\t\treturn hasRegExpMatcher(argument);\n+\t},\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue\n+\t// SameValue: ES5.SameValue,\n+\n+\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero\n+\tSameValueZero: function SameValueZero(x, y) {\n+\t\treturn (x === y) || ($isNaN(x) && $isNaN(y));\n+\t},\n+\n+\t/**\n+\t * 7.3.2 GetV (V, P)\n+\t * 1. Assert: IsPropertyKey(P) is true.\n+\t * 2. Let O be ToObject(V).\n+\t * 3. ReturnIfAbrupt(O).\n+\t * 4. Return O.[[Get]](P, V).\n+\t */\n+\tGetV: function GetV(V, P) {\n+\t\t// 7.3.2.1\n+\t\tif (!this.IsPropertyKey(P)) {\n+\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n+\t\t}\n+\n+\t\t// 7.3.2.2-3\n+\t\tvar O = this.ToObject(V);\n+\n+\t\t// 7.3.2.4\n+\t\treturn O[P];\n+\t},\n+\n+\t/**\n+\t * 7.3.9 - http://www.ecma-international.org/ecma-262/6.0/#sec-getmethod\n+\t * 1. Assert: IsPropertyKey(P) is true.\n+\t * 2. Let func be GetV(O, P).\n+\t * 3. ReturnIfAbrupt(func).\n+\t * 4. If func is either undefined or null, return undefined.\n+\t * 5. If IsCallable(func) is false, throw a TypeError exception.\n+\t * 6. Return func.\n+\t */\n+\tGetMethod: function GetMethod(O, P) {\n+\t\t// 7.3.9.1\n+\t\tif (!this.IsPropertyKey(P)) {\n+\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n+\t\t}\n+\n+\t\t// 7.3.9.2\n+\t\tvar func = this.GetV(O, P);\n+\n+\t\t// 7.3.9.4\n+\t\tif (func == null) {\n+\t\t\treturn undefined;\n+\t\t}\n+\n+\t\t// 7.3.9.5\n+\t\tif (!this.IsCallable(func)) {\n+\t\t\tthrow new TypeError(P + 'is not a function');\n+\t\t}\n+\n+\t\t// 7.3.9.6\n+\t\treturn func;\n+\t},\n+\n+\t/**\n+\t * 7.3.1 Get (O, P) - http://www.ecma-international.org/ecma-262/6.0/#sec-get-o-p\n+\t * 1. Assert: Type(O) is Object.\n+\t * 2. Assert: IsPropertyKey(P) is true.\n+\t * 3. Return O.[[Get]](P, O).\n+\t */\n+\tGet: function Get(O, P) {\n+\t\t// 7.3.1.1\n+\t\tif (this.Type(O) !== 'Object') {\n+\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n+\t\t}\n+\t\t// 7.3.1.2\n+\t\tif (!this.IsPropertyKey(P)) {\n+\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n+\t\t}\n+\t\t// 7.3.1.3\n+\t\treturn O[P];\n+\t},\n+\n+\tType: function Type(x) {\n+\t\tif (typeof x === 'symbol') {\n+\t\t\treturn 'Symbol';\n+\t\t}\n+\t\treturn ES5.Type(x);\n+\t},\n+\n+\t// http://www.ecma-international.org/ecma-262/6.0/#sec-speciesconstructor\n+\tSpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n+\t\tif (this.Type(O) !== 'Object') {\n+\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n+\t\t}\n+\t\tvar C = O.constructor;\n+\t\tif (typeof C === 'undefined') {\n+\t\t\treturn defaultConstructor;\n+\t\t}\n+\t\tif (this.Type(C) !== 'Object') {\n+\t\t\tthrow new TypeError('O.constructor is not an Object');\n+\t\t}\n+\t\tvar S = hasSymbols && Symbol.species ? C[Symbol.species] : undefined;\n+\t\tif (S == null) {\n+\t\t\treturn defaultConstructor;\n+\t\t}\n+\t\tif (this.IsConstructor(S)) {\n+\t\t\treturn S;\n+\t\t}\n+\t\tthrow new TypeError('no constructor found');\n+\t}\n+});\n+\n+delete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n+\n+module.exports = ES6;\n+\n+},{\"./es5\":9,\"./helpers/assign\":12,\"./helpers/isFinite\":13,\"./helpers/isNaN\":14,\"./helpers/isPrimitive\":15,\"./helpers/mod\":16,\"./helpers/sign\":17,\"es-to-primitive/es6\":19,\"function-bind\":23,\"is-regex\":27}],11:[function(require,module,exports){\n+'use strict';\n+\n+var ES6 = require('./es6');\n+var assign = require('./helpers/assign');\n+\n+var ES7 = assign(ES6, {\n+\t// https://github.com/tc39/ecma262/pull/60\n+\tSameValueNonNumber: function SameValueNonNumber(x, y) {\n+\t\tif (typeof x === 'number' || typeof x !== typeof y) {\n+\t\t\tthrow new TypeError('SameValueNonNumber requires two non-number values of the same type.');\n+\t\t}\n+\t\treturn this.SameValue(x, y);\n+\t}\n+});\n+\n+module.exports = ES7;\n+\n+},{\"./es6\":10,\"./helpers/assign\":12}],12:[function(require,module,exports){\n+var has = Object.prototype.hasOwnProperty;\n+module.exports = Object.assign || function assign(target, source) {\n+\tfor (var key in source) {\n+\t\tif (has.call(source, key)) {\n+\t\t\ttarget[key] = source[key];\n+\t\t}\n+\t}\n+\treturn target;\n+};\n+\n+},{}],13:[function(require,module,exports){\n+var $isNaN = Number.isNaN || function (a) { return a !== a; };\n+\n+module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n+\n+},{}],14:[function(require,module,exports){\n+module.exports = Number.isNaN || function isNaN(a) {\n+\treturn a !== a;\n+};\n+\n+},{}],15:[function(require,module,exports){\n+module.exports = function isPrimitive(value) {\n+\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n+};\n+\n+},{}],16:[function(require,module,exports){\n+module.exports = function mod(number, modulo) {\n+\tvar remain = number % modulo;\n+\treturn Math.floor(remain >= 0 ? remain : remain + modulo);\n+};\n+\n+},{}],17:[function(require,module,exports){\n+module.exports = function sign(number) {\n+\treturn number >= 0 ? 1 : -1;\n+};\n+\n+},{}],18:[function(require,module,exports){\n+'use strict';\n+\n+var toStr = Object.prototype.toString;\n+\n+var isPrimitive = require('./helpers/isPrimitive');\n+\n+var isCallable = require('is-callable');\n+\n+// https://es5.github.io/#x8.12\n+var ES5internalSlots = {\n+\t'[[DefaultValue]]': function (O, hint) {\n+\t\tvar actualHint = hint || (toStr.call(O) === '[object Date]' ? String : Number);\n+\n+\t\tif (actualHint === String || actualHint === Number) {\n+\t\t\tvar methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n+\t\t\tvar value, i;\n+\t\t\tfor (i = 0; i < methods.length; ++i) {\n+\t\t\t\tif (isCallable(O[methods[i]])) {\n+\t\t\t\t\tvalue = O[methods[i]]();\n+\t\t\t\t\tif (isPrimitive(value)) {\n+\t\t\t\t\t\treturn value;\n+\t\t\t\t\t}\n+\t\t\t\t}\n+\t\t\t}\n+\t\t\tthrow new TypeError('No default value');\n+\t\t}\n+\t\tthrow new TypeError('invalid [[DefaultValue]] hint supplied');\n+\t}\n+};\n+\n+// https://es5.github.io/#x9\n+module.exports = function ToPrimitive(input, PreferredType) {\n+\tif (isPrimitive(input)) {\n+\t\treturn input;\n+\t}\n+\treturn ES5internalSlots['[[DefaultValue]]'](input, PreferredType);\n+};\n+\n+},{\"./helpers/isPrimitive\":20,\"is-callable\":25}],19:[function(require,module,exports){\n+'use strict';\n+\n+var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n+\n+var isPrimitive = require('./helpers/isPrimitive');\n+var isCallable = require('is-callable');\n+var isDate = require('is-date-object');\n+var isSymbol = require('is-symbol');\n+\n+var ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n+\tif (typeof O === 'undefined' || O === null) {\n+\t\tthrow new TypeError('Cannot call method on ' + O);\n+\t}\n+\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n+\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n+\t}\n+\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n+\tvar method, result, i;\n+\tfor (i = 0; i < methodNames.length; ++i) {\n+\t\tmethod = O[methodNames[i]];\n+\t\tif (isCallable(method)) {\n+\t\t\tresult = method.call(O);\n+\t\t\tif (isPrimitive(result)) {\n+\t\t\t\treturn result;\n+\t\t\t}\n+\t\t}\n+\t}\n+\tthrow new TypeError('No default value');\n+};\n+\n+var GetMethod = function GetMethod(O, P) {\n+\tvar func = O[P];\n+\tif (func !== null && typeof func !== 'undefined') {\n+\t\tif (!isCallable(func)) {\n+\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n+\t\t}\n+\t\treturn func;\n+\t}\n+};\n+\n+// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\n+module.exports = function ToPrimitive(input, PreferredType) {\n+\tif (isPrimitive(input)) {\n+\t\treturn input;\n+\t}\n+\tvar hint = 'default';\n+\tif (arguments.length > 1) {\n+\t\tif (PreferredType === String) {\n+\t\t\thint = 'string';\n+\t\t} else if (PreferredType === Number) {\n+\t\t\thint = 'number';\n+\t\t}\n+\t}\n+\n+\tvar exoticToPrim;\n+\tif (hasSymbols) {\n+\t\tif (Symbol.toPrimitive) {\n+\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n+\t\t} else if (isSymbol(input)) {\n+\t\t\texoticToPrim = Symbol.prototype.valueOf;\n+\t\t}\n+\t}\n+\tif (typeof exoticToPrim !== 'undefined') {\n+\t\tvar result = exoticToPrim.call(input, hint);\n+\t\tif (isPrimitive(result)) {\n+\t\t\treturn result;\n+\t\t}\n+\t\tthrow new TypeError('unable to convert exotic object to primitive');\n+\t}\n+\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n+\t\thint = 'string';\n+\t}\n+\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n+};\n+\n+},{\"./helpers/isPrimitive\":20,\"is-callable\":25,\"is-date-object\":26,\"is-symbol\":28}],20:[function(require,module,exports){\n+module.exports=require(15)\n+},{}],21:[function(require,module,exports){\n+\n+var hasOwn = Object.prototype.hasOwnProperty;\n+var toString = Object.prototype.toString;\n+\n+module.exports = function forEach (obj, fn, ctx) {\n+    if (toString.call(fn) !== '[object Function]') {\n+        throw new TypeError('iterator must be a function');\n+    }\n+    var l = obj.length;\n+    if (l === +l) {\n+        for (var i = 0; i < l; i++) {\n+            fn.call(ctx, obj[i], i, obj);\n+        }\n+    } else {\n+        for (var k in obj) {\n+            if (hasOwn.call(obj, k)) {\n+                fn.call(ctx, obj[k], k, obj);\n+            }\n+        }\n+    }\n+};\n+\n+\n+},{}],22:[function(require,module,exports){\n+var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\n+var slice = Array.prototype.slice;\n+var toStr = Object.prototype.toString;\n+var funcType = '[object Function]';\n+\n+module.exports = function bind(that) {\n+    var target = this;\n+    if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n+        throw new TypeError(ERROR_MESSAGE + target);\n+    }\n+    var args = slice.call(arguments, 1);\n+\n+    var bound;\n+    var binder = function () {\n+        if (this instanceof bound) {\n+            var result = target.apply(\n+                this,\n+                args.concat(slice.call(arguments))\n+            );\n+            if (Object(result) === result) {\n+                return result;\n+            }\n+            return this;\n+        } else {\n+            return target.apply(\n+                that,\n+                args.concat(slice.call(arguments))\n+            );\n+        }\n+    };\n+\n+    var boundLength = Math.max(0, target.length - args.length);\n+    var boundArgs = [];\n+    for (var i = 0; i < boundLength; i++) {\n+        boundArgs.push('$' + i);\n+    }\n+\n+    bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n+\n+    if (target.prototype) {\n+        var Empty = function Empty() {};\n+        Empty.prototype = target.prototype;\n+        bound.prototype = new Empty();\n+        Empty.prototype = null;\n+    }\n+\n+    return bound;\n+};\n+\n+},{}],23:[function(require,module,exports){\n+var implementation = require('./implementation');\n+\n+module.exports = Function.prototype.bind || implementation;\n+\n+},{\"./implementation\":22}],24:[function(require,module,exports){\n+var bind = require('function-bind');\n+\n+module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n+\n+},{\"function-bind\":23}],25:[function(require,module,exports){\n+'use strict';\n+\n+var fnToStr = Function.prototype.toString;\n+\n+var constructorRegex = /^\\s*class /;\n+var isES6ClassFn = function isES6ClassFn(value) {\n+\ttry {\n+\t\tvar fnStr = fnToStr.call(value);\n+\t\tvar singleStripped = fnStr.replace(/\\/\\/.*\\n/g, '');\n+\t\tvar multiStripped = singleStripped.replace(/\\/\\*[.\\s\\S]*\\*\\//g, '');\n+\t\tvar spaceStripped = multiStripped.replace(/\\n/mg, ' ').replace(/ {2}/g, ' ');\n+\t\treturn constructorRegex.test(spaceStripped);\n+\t} catch (e) {\n+\t\treturn false; // not a function\n+\t}\n+};\n+\n+var tryFunctionObject = function tryFunctionObject(value) {\n+\ttry {\n+\t\tif (isES6ClassFn(value)) { return false; }\n+\t\tfnToStr.call(value);\n+\t\treturn true;\n+\t} catch (e) {\n+\t\treturn false;\n+\t}\n+};\n+var toStr = Object.prototype.toString;\n+var fnClass = '[object Function]';\n+var genClass = '[object GeneratorFunction]';\n+var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n+\n+module.exports = function isCallable(value) {\n+\tif (!value) { return false; }\n+\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n+\tif (hasToStringTag) { return tryFunctionObject(value); }\n+\tif (isES6ClassFn(value)) { return false; }\n+\tvar strClass = toStr.call(value);\n+\treturn strClass === fnClass || strClass === genClass;\n+};\n+\n+},{}],26:[function(require,module,exports){\n+'use strict';\n+\n+var getDay = Date.prototype.getDay;\n+var tryDateObject = function tryDateObject(value) {\n+\ttry {\n+\t\tgetDay.call(value);\n+\t\treturn true;\n+\t} catch (e) {\n+\t\treturn false;\n+\t}\n+};\n+\n+var toStr = Object.prototype.toString;\n+var dateClass = '[object Date]';\n+var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n+\n+module.exports = function isDateObject(value) {\n+\tif (typeof value !== 'object' || value === null) { return false; }\n+\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n+};\n+\n+},{}],27:[function(require,module,exports){\n+'use strict';\n+\n+var has = require('has');\n+var regexExec = RegExp.prototype.exec;\n+var gOPD = Object.getOwnPropertyDescriptor;\n+\n+var tryRegexExecCall = function tryRegexExec(value) {\n+\ttry {\n+\t\tvar lastIndex = value.lastIndex;\n+\t\tvalue.lastIndex = 0;\n+\n+\t\tregexExec.call(value);\n+\t\treturn true;\n+\t} catch (e) {\n+\t\treturn false;\n+\t} finally {\n+\t\tvalue.lastIndex = lastIndex;\n+\t}\n+};\n+var toStr = Object.prototype.toString;\n+var regexClass = '[object RegExp]';\n+var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n+\n+module.exports = function isRegex(value) {\n+\tif (!value || typeof value !== 'object') {\n+\t\treturn false;\n+\t}\n+\tif (!hasToStringTag) {\n+\t\treturn toStr.call(value) === regexClass;\n+\t}\n+\n+\tvar descriptor = gOPD(value, 'lastIndex');\n+\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n+\tif (!hasLastIndexDataProperty) {\n+\t\treturn false;\n+\t}\n+\n+\treturn tryRegexExecCall(value);\n+};\n+\n+},{\"has\":24}],28:[function(require,module,exports){\n+'use strict';\n+\n+var toStr = Object.prototype.toString;\n+var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n+\n+if (hasSymbols) {\n+\tvar symToStr = Symbol.prototype.toString;\n+\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n+\tvar isSymbolObject = function isSymbolObject(value) {\n+\t\tif (typeof value.valueOf() !== 'symbol') { return false; }\n+\t\treturn symStringRegex.test(symToStr.call(value));\n+\t};\n+\tmodule.exports = function isSymbol(value) {\n+\t\tif (typeof value === 'symbol') { return true; }\n+\t\tif (toStr.call(value) !== '[object Symbol]') { return false; }\n+\t\ttry {\n+\t\t\treturn isSymbolObject(value);\n+\t\t} catch (e) {\n+\t\t\treturn false;\n+\t\t}\n+\t};\n+} else {\n+\tmodule.exports = function isSymbol(value) {\n+\t\t// this environment does not support Symbols.\n+\t\treturn false;\n+\t};\n+}\n+\n+},{}],29:[function(require,module,exports){\n+'use strict';\n+\n+var ES = require('es-abstract/es7');\n+var has = require('has');\n+var bind = require('function-bind');\n+var isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n+\n+module.exports = function values(O) {\n+\tvar obj = ES.RequireObjectCoercible(O);\n+\tvar vals = [];\n+\tfor (var key in obj) {\n+\t\tif (has(obj, key) && isEnumerable(obj, key)) {\n+\t\t\tvals.push(obj[key]);\n+\t\t}\n+\t}\n+\treturn vals;\n+};\n+\n+},{\"es-abstract/es7\":11,\"function-bind\":23,\"has\":24}],30:[function(require,module,exports){\n+'use strict';\n+\n+var define = require('define-properties');\n+\n+var implementation = require('./implementation');\n+var getPolyfill = require('./polyfill');\n+var shim = require('./shim');\n+\n+var polyfill = getPolyfill();\n+\n+define(polyfill, {\n+\tgetPolyfill: getPolyfill,\n+\timplementation: implementation,\n+\tshim: shim\n+});\n+\n+module.exports = polyfill;\n+\n+},{\"./implementation\":29,\"./polyfill\":31,\"./shim\":32,\"define-properties\":6}],31:[function(require,module,exports){\n+'use strict';\n+\n+var implementation = require('./implementation');\n+\n+module.exports = function getPolyfill() {\n+\treturn typeof Object.values === 'function' ? Object.values : implementation;\n+};\n+\n+},{\"./implementation\":29}],32:[function(require,module,exports){\n+'use strict';\n+\n+var getPolyfill = require('./polyfill');","path":"jasmine/testfiles/bundle.js","position":1249,"original_position":1249,"commit_id":"f9fad35a7f42b13cace9ed430530dad35b95d17e","original_commit_id":"f9fad35a7f42b13cace9ed430530dad35b95d17e","user":{"login":"houndci-bot","id":6697940,"avatar_url":"https://avatars3.githubusercontent.com/u/6697940?v=3","gravatar_id":"","url":"https://api.github.com/users/houndci-bot","html_url":"https://github.com/houndci-bot","followers_url":"https://api.github.com/users/houndci-bot/followers","following_url":"https://api.github.com/users/houndci-bot/following{/other_user}","gists_url":"https://api.github.com/users/houndci-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/houndci-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houndci-bot/subscriptions","organizations_url":"https://api.github.com/users/houndci-bot/orgs","repos_url":"https://api.github.com/users/houndci-bot/repos","events_url":"https://api.github.com/users/houndci-bot/events{/privacy}","received_events_url":"https://api.github.com/users/houndci-bot/received_events","type":"User","site_admin":false},"body":"Expected indentation of 2 spaces but found 0                                                                indent<br>Unexpected var, use let or const instead                                                                    no-var<br>Unable to resolve path to module './polyfill'                                                               import/no-unresolved","created_at":"2017-03-25T13:18:19Z","updated_at":"2017-03-25T13:18:20Z","html_url":"https://github.com/andela-moseni/inverted-index/pull/1#discussion_r108035951","pull_request_url":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/comments/108035951"},"html":{"href":"https://github.com/andela-moseni/inverted-index/pull/1#discussion_r108035951"},"pull_request":{"href":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/1","id":112355572,"html_url":"https://github.com/andela-moseni/inverted-index/pull/1","diff_url":"https://github.com/andela-moseni/inverted-index/pull/1.diff","patch_url":"https://github.com/andela-moseni/inverted-index/pull/1.patch","issue_url":"https://api.github.com/repos/andela-moseni/inverted-index/issues/1","number":1,"state":"open","locked":false,"title":"Merge Development branch to Master","user":{"login":"andela-moseni","id":26272984,"avatar_url":"https://avatars0.githubusercontent.com/u/26272984?v=3","gravatar_id":"","url":"https://api.github.com/users/andela-moseni","html_url":"https://github.com/andela-moseni","followers_url":"https://api.github.com/users/andela-moseni/followers","following_url":"https://api.github.com/users/andela-moseni/following{/other_user}","gists_url":"https://api.github.com/users/andela-moseni/gists{/gist_id}","starred_url":"https://api.github.com/users/andela-moseni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andela-moseni/subscriptions","organizations_url":"https://api.github.com/users/andela-moseni/orgs","repos_url":"https://api.github.com/users/andela-moseni/repos","events_url":"https://api.github.com/users/andela-moseni/events{/privacy}","received_events_url":"https://api.github.com/users/andela-moseni/received_events","type":"User","site_admin":false},"body":"#### What does this PR do?\r\nIt creates a review pull request to master.","created_at":"2017-03-23T22:53:46Z","updated_at":"2017-03-25T13:18:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2193826ff21396fbe447164b552589a3fac43c0a","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/1/commits","review_comments_url":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/1/comments","review_comment_url":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/comments{/number}","comments_url":"https://api.github.com/repos/andela-moseni/inverted-index/issues/1/comments","statuses_url":"https://api.github.com/repos/andela-moseni/inverted-index/statuses/f9fad35a7f42b13cace9ed430530dad35b95d17e","head":{"label":"andela-moseni:development","ref":"development","sha":"f9fad35a7f42b13cace9ed430530dad35b95d17e","user":{"login":"andela-moseni","id":26272984,"avatar_url":"https://avatars0.githubusercontent.com/u/26272984?v=3","gravatar_id":"","url":"https://api.github.com/users/andela-moseni","html_url":"https://github.com/andela-moseni","followers_url":"https://api.github.com/users/andela-moseni/followers","following_url":"https://api.github.com/users/andela-moseni/following{/other_user}","gists_url":"https://api.github.com/users/andela-moseni/gists{/gist_id}","starred_url":"https://api.github.com/users/andela-moseni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andela-moseni/subscriptions","organizations_url":"https://api.github.com/users/andela-moseni/orgs","repos_url":"https://api.github.com/users/andela-moseni/repos","events_url":"https://api.github.com/users/andela-moseni/events{/privacy}","received_events_url":"https://api.github.com/users/andela-moseni/received_events","type":"User","site_admin":false},"repo":{"id":84435617,"name":"inverted-index","full_name":"andela-moseni/inverted-index","owner":{"login":"andela-moseni","id":26272984,"avatar_url":"https://avatars0.githubusercontent.com/u/26272984?v=3","gravatar_id":"","url":"https://api.github.com/users/andela-moseni","html_url":"https://github.com/andela-moseni","followers_url":"https://api.github.com/users/andela-moseni/followers","following_url":"https://api.github.com/users/andela-moseni/following{/other_user}","gists_url":"https://api.github.com/users/andela-moseni/gists{/gist_id}","starred_url":"https://api.github.com/users/andela-moseni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andela-moseni/subscriptions","organizations_url":"https://api.github.com/users/andela-moseni/orgs","repos_url":"https://api.github.com/users/andela-moseni/repos","events_url":"https://api.github.com/users/andela-moseni/events{/privacy}","received_events_url":"https://api.github.com/users/andela-moseni/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/andela-moseni/inverted-index","description":"An Inverted Index is an Index Data Structure storing a mapping from content to location (i.e. a mapping of words or numbers to it's location in a database file).","fork":false,"url":"https://api.github.com/repos/andela-moseni/inverted-index","forks_url":"https://api.github.com/repos/andela-moseni/inverted-index/forks","keys_url":"https://api.github.com/repos/andela-moseni/inverted-index/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andela-moseni/inverted-index/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andela-moseni/inverted-index/teams","hooks_url":"https://api.github.com/repos/andela-moseni/inverted-index/hooks","issue_events_url":"https://api.github.com/repos/andela-moseni/inverted-index/issues/events{/number}","events_url":"https://api.github.com/repos/andela-moseni/inverted-index/events","assignees_url":"https://api.github.com/repos/andela-moseni/inverted-index/assignees{/user}","branches_url":"https://api.github.com/repos/andela-moseni/inverted-index/branches{/branch}","tags_url":"https://api.github.com/repos/andela-moseni/inverted-index/tags","blobs_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/refs{/sha}","trees_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andela-moseni/inverted-index/statuses/{sha}","languages_url":"https://api.github.com/repos/andela-moseni/inverted-index/languages","stargazers_url":"https://api.github.com/repos/andela-moseni/inverted-index/stargazers","contributors_url":"https://api.github.com/repos/andela-moseni/inverted-index/contributors","subscribers_url":"https://api.github.com/repos/andela-moseni/inverted-index/subscribers","subscription_url":"https://api.github.com/repos/andela-moseni/inverted-index/subscription","commits_url":"https://api.github.com/repos/andela-moseni/inverted-index/commits{/sha}","git_commits_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/commits{/sha}","comments_url":"https://api.github.com/repos/andela-moseni/inverted-index/comments{/number}","issue_comment_url":"https://api.github.com/repos/andela-moseni/inverted-index/issues/comments{/number}","contents_url":"https://api.github.com/repos/andela-moseni/inverted-index/contents/{+path}","compare_url":"https://api.github.com/repos/andela-moseni/inverted-index/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andela-moseni/inverted-index/merges","archive_url":"https://api.github.com/repos/andela-moseni/inverted-index/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andela-moseni/inverted-index/downloads","issues_url":"https://api.github.com/repos/andela-moseni/inverted-index/issues{/number}","pulls_url":"https://api.github.com/repos/andela-moseni/inverted-index/pulls{/number}","milestones_url":"https://api.github.com/repos/andela-moseni/inverted-index/milestones{/number}","notifications_url":"https://api.github.com/repos/andela-moseni/inverted-index/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andela-moseni/inverted-index/labels{/name}","releases_url":"https://api.github.com/repos/andela-moseni/inverted-index/releases{/id}","deployments_url":"https://api.github.com/repos/andela-moseni/inverted-index/deployments","created_at":"2017-03-09T11:41:43Z","updated_at":"2017-03-25T09:17:27Z","pushed_at":"2017-03-25T13:17:56Z","git_url":"git://github.com/andela-moseni/inverted-index.git","ssh_url":"git@github.com:andela-moseni/inverted-index.git","clone_url":"https://github.com/andela-moseni/inverted-index.git","svn_url":"https://github.com/andela-moseni/inverted-index","homepage":null,"size":93,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"development"}},"base":{"label":"andela-moseni:master","ref":"master","sha":"cff42354b8601a79d62c84b259055c6df4706a2b","user":{"login":"andela-moseni","id":26272984,"avatar_url":"https://avatars0.githubusercontent.com/u/26272984?v=3","gravatar_id":"","url":"https://api.github.com/users/andela-moseni","html_url":"https://github.com/andela-moseni","followers_url":"https://api.github.com/users/andela-moseni/followers","following_url":"https://api.github.com/users/andela-moseni/following{/other_user}","gists_url":"https://api.github.com/users/andela-moseni/gists{/gist_id}","starred_url":"https://api.github.com/users/andela-moseni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andela-moseni/subscriptions","organizations_url":"https://api.github.com/users/andela-moseni/orgs","repos_url":"https://api.github.com/users/andela-moseni/repos","events_url":"https://api.github.com/users/andela-moseni/events{/privacy}","received_events_url":"https://api.github.com/users/andela-moseni/received_events","type":"User","site_admin":false},"repo":{"id":84435617,"name":"inverted-index","full_name":"andela-moseni/inverted-index","owner":{"login":"andela-moseni","id":26272984,"avatar_url":"https://avatars0.githubusercontent.com/u/26272984?v=3","gravatar_id":"","url":"https://api.github.com/users/andela-moseni","html_url":"https://github.com/andela-moseni","followers_url":"https://api.github.com/users/andela-moseni/followers","following_url":"https://api.github.com/users/andela-moseni/following{/other_user}","gists_url":"https://api.github.com/users/andela-moseni/gists{/gist_id}","starred_url":"https://api.github.com/users/andela-moseni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andela-moseni/subscriptions","organizations_url":"https://api.github.com/users/andela-moseni/orgs","repos_url":"https://api.github.com/users/andela-moseni/repos","events_url":"https://api.github.com/users/andela-moseni/events{/privacy}","received_events_url":"https://api.github.com/users/andela-moseni/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/andela-moseni/inverted-index","description":"An Inverted Index is an Index Data Structure storing a mapping from content to location (i.e. a mapping of words or numbers to it's location in a database file).","fork":false,"url":"https://api.github.com/repos/andela-moseni/inverted-index","forks_url":"https://api.github.com/repos/andela-moseni/inverted-index/forks","keys_url":"https://api.github.com/repos/andela-moseni/inverted-index/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andela-moseni/inverted-index/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andela-moseni/inverted-index/teams","hooks_url":"https://api.github.com/repos/andela-moseni/inverted-index/hooks","issue_events_url":"https://api.github.com/repos/andela-moseni/inverted-index/issues/events{/number}","events_url":"https://api.github.com/repos/andela-moseni/inverted-index/events","assignees_url":"https://api.github.com/repos/andela-moseni/inverted-index/assignees{/user}","branches_url":"https://api.github.com/repos/andela-moseni/inverted-index/branches{/branch}","tags_url":"https://api.github.com/repos/andela-moseni/inverted-index/tags","blobs_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/refs{/sha}","trees_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andela-moseni/inverted-index/statuses/{sha}","languages_url":"https://api.github.com/repos/andela-moseni/inverted-index/languages","stargazers_url":"https://api.github.com/repos/andela-moseni/inverted-index/stargazers","contributors_url":"https://api.github.com/repos/andela-moseni/inverted-index/contributors","subscribers_url":"https://api.github.com/repos/andela-moseni/inverted-index/subscribers","subscription_url":"https://api.github.com/repos/andela-moseni/inverted-index/subscription","commits_url":"https://api.github.com/repos/andela-moseni/inverted-index/commits{/sha}","git_commits_url":"https://api.github.com/repos/andela-moseni/inverted-index/git/commits{/sha}","comments_url":"https://api.github.com/repos/andela-moseni/inverted-index/comments{/number}","issue_comment_url":"https://api.github.com/repos/andela-moseni/inverted-index/issues/comments{/number}","contents_url":"https://api.github.com/repos/andela-moseni/inverted-index/contents/{+path}","compare_url":"https://api.github.com/repos/andela-moseni/inverted-index/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andela-moseni/inverted-index/merges","archive_url":"https://api.github.com/repos/andela-moseni/inverted-index/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andela-moseni/inverted-index/downloads","issues_url":"https://api.github.com/repos/andela-moseni/inverted-index/issues{/number}","pulls_url":"https://api.github.com/repos/andela-moseni/inverted-index/pulls{/number}","milestones_url":"https://api.github.com/repos/andela-moseni/inverted-index/milestones{/number}","notifications_url":"https://api.github.com/repos/andela-moseni/inverted-index/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andela-moseni/inverted-index/labels{/name}","releases_url":"https://api.github.com/repos/andela-moseni/inverted-index/releases{/id}","deployments_url":"https://api.github.com/repos/andela-moseni/inverted-index/deployments","created_at":"2017-03-09T11:41:43Z","updated_at":"2017-03-25T09:17:27Z","pushed_at":"2017-03-25T13:17:56Z","git_url":"git://github.com/andela-moseni/inverted-index.git","ssh_url":"git@github.com:andela-moseni/inverted-index.git","clone_url":"https://github.com/andela-moseni/inverted-index.git","svn_url":"https://github.com/andela-moseni/inverted-index","homepage":null,"size":93,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"development"}},"_links":{"self":{"href":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/1"},"html":{"href":"https://github.com/andela-moseni/inverted-index/pull/1"},"issue":{"href":"https://api.github.com/repos/andela-moseni/inverted-index/issues/1"},"comments":{"href":"https://api.github.com/repos/andela-moseni/inverted-index/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/andela-moseni/inverted-index/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/andela-moseni/inverted-index/statuses/f9fad35a7f42b13cace9ed430530dad35b95d17e"}}}}
{"actor":{"display_login":"houndci-bot"}}