UNPKG

jsondiffpatch

Version:
1 lines 67 kB
{"version":3,"sources":["/source-files/jsondiffpatch/node_modules/fiberglass/node_modules/browserify/node_modules/browser-pack/_prelude.js","/source-files/jsondiffpatch/src/main.js","/source-files/jsondiffpatch/src/diffpatcher.js","/source-files/jsondiffpatch/src/date-reviver.js","/source-files/jsondiffpatch/src/environment.js","/source-files/jsondiffpatch/src/processor.js","/source-files/jsondiffpatch/src/pipe.js","/source-files/jsondiffpatch/src/contexts/diff.js","/source-files/jsondiffpatch/src/contexts/patch.js","/source-files/jsondiffpatch/src/contexts/reverse.js","/source-files/jsondiffpatch/src/clone.js","/source-files/jsondiffpatch/src/filters/trivial.js","/source-files/jsondiffpatch/src/filters/nested.js","/source-files/jsondiffpatch/src/filters/arrays.js","/source-files/jsondiffpatch/src/filters/dates.js","/source-files/jsondiffpatch/src/filters/texts.js","/source-files/jsondiffpatch/src/contexts/context.js","/source-files/jsondiffpatch/src/filters/lcs.js"],"names":["environment","require","DiffPatcher","exports","create","options","dateReviver","defaultInstance","diff","apply","arguments","patch","unpatch","reverse","clone","isBrowser","homepage","version","packageInfoModuleName","packageInfo","formatterModuleName","formatters","console","Processor","Pipe","DiffContext","PatchContext","ReverseContext","trivial","nested","arrays","dates","texts","this","processor","pipe","append","collectChildrenDiffFilter","diffFilter","objectsDiffFilter","shouldHaveResult","collectChildrenPatchFilter","patchFilter","collectChildrenReverseFilter","reverseFilter","prototype","left","right","process","delta","value","module","key","parts","exec","Date","UTC","window","selfOptions","pipes","name","input","context","lastPipe","lastContext","nextPipe","nextAfterChildren","next","hasResult","result","undefined","filters","Error","debug","length","index","filter","log","filterName","exiting","resultCheck","msg","push","prepend","unshift","indexOf","list","names","after","params","Array","slice","call","splice","before","clear","should","error","noResult","Context","defaultClone","setResult","cloneDiffValues","cloneRegExp","re","regexMatch","toString","RegExp","arg","isArray","map","getTime","cloned","Object","hasOwnProperty","a","exit","leftType","rightType","leftIsArray","rightIsArray","regexArgs","children","child","childName","_t","propertyFilter","arraysHaveMatchByRef","array1","array2","len1","len2","index1","val1","index2","val2","matchItems","value1","value2","objectHash","matchByPosition","hash1","hash2","hashCache1","hashCache2","lcs","ARRAY_MOVE","arrayIndexOf","array","item","i","matchContext","commonHead","commonTail","trimmed1","trimmed2","seq","get","removedItems","indices1","detectMove","includeValueOnMove","removedItemsLength","indexOnArray2","indices2","isMove","removeItemIndex1","compare","numerically","b","numericallyBy","toRemove","toInsert","toModify","parseInt","sort","indexDiff","removedValue","toInsertLength","insertion","toModifyLength","modification","newName","substr","reverseArrayDeltaIndex","itemDelta","reverseIndex","deltaIndex","deltaItem","moveFromIndex","moveToIndex","deleteIndex","TEXT_DIFF","DEFAULT_MIN_LENGTH","cachedDiffPatch","getDiffMatchPatch","required","instance","diff_match_patch","dmpModuleName","dmp","err","diff_match_patch_not_found","txt1","txt2","patch_toText","patch_make","results","patch_apply","patch_fromText","textPatchFailed","minLength","textDiff","diffMatchPatch","textDeltaReverse","l","lines","line","lineTmp","lineHeader","lineAdd","lineRemove","header","headerRegex","split","lineStart","join","switchTo","parent","root","defaultMatch","lengthMatrix","match","x","y","matrix","Math","max","backtrack","sequence","subsequence"],"mappings":"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","file":"bundle.js","sourcesContent":["(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);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.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})","\nvar environment = require('./environment');\n\nvar DiffPatcher = require('./diffpatcher').DiffPatcher;\nexports.DiffPatcher = DiffPatcher;\n\nexports.create = function(options){\n return new DiffPatcher(options);\n};\n\nexports.dateReviver = require('./date-reviver');\n\nvar defaultInstance;\n\nexports.diff = function() {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.diff.apply(defaultInstance, arguments);\n};\n\nexports.patch = function() {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.patch.apply(defaultInstance, arguments);\n};\n\nexports.unpatch = function() {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.unpatch.apply(defaultInstance, arguments);\n};\n\nexports.reverse = function() {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.reverse.apply(defaultInstance, arguments);\n};\n\nexports.clone = function() {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.clone.apply(defaultInstance, arguments);\n};\n\n\nif (environment.isBrowser) {\n exports.homepage = '{{package-homepage}}';\n exports.version = '{{package-version}}';\n} else {\n var packageInfoModuleName = '../package.json';\n var packageInfo = require(packageInfoModuleName);\n exports.homepage = packageInfo.homepage;\n exports.version = packageInfo.version;\n\n var formatterModuleName = './formatters';\n var formatters = require(formatterModuleName);\n exports.formatters = formatters;\n // shortcut for console\n exports.console = formatters.console;\n}\n","var Processor = require('./processor').Processor;\nvar Pipe = require('./pipe').Pipe;\nvar DiffContext = require('./contexts/diff').DiffContext;\nvar PatchContext = require('./contexts/patch').PatchContext;\nvar ReverseContext = require('./contexts/reverse').ReverseContext;\n\nvar clone = require('./clone');\n\nvar trivial = require('./filters/trivial');\nvar nested = require('./filters/nested');\nvar arrays = require('./filters/arrays');\nvar dates = require('./filters/dates');\nvar texts = require('./filters/texts');\n\nvar DiffPatcher = function DiffPatcher(options) {\n this.processor = new Processor(options);\n this.processor.pipe(new Pipe('diff').append(\n nested.collectChildrenDiffFilter,\n trivial.diffFilter,\n dates.diffFilter,\n texts.diffFilter,\n nested.objectsDiffFilter,\n arrays.diffFilter\n ).shouldHaveResult());\n this.processor.pipe(new Pipe('patch').append(\n nested.collectChildrenPatchFilter,\n arrays.collectChildrenPatchFilter,\n trivial.patchFilter,\n texts.patchFilter,\n nested.patchFilter,\n arrays.patchFilter\n ).shouldHaveResult());\n this.processor.pipe(new Pipe('reverse').append(\n nested.collectChildrenReverseFilter,\n arrays.collectChildrenReverseFilter,\n trivial.reverseFilter,\n texts.reverseFilter,\n nested.reverseFilter,\n arrays.reverseFilter\n ).shouldHaveResult());\n};\n\nDiffPatcher.prototype.options = function() {\n return this.processor.options.apply(this.processor, arguments);\n};\n\nDiffPatcher.prototype.diff = function(left, right) {\n return this.processor.process(new DiffContext(left, right));\n};\n\nDiffPatcher.prototype.patch = function(left, delta) {\n return this.processor.process(new PatchContext(left, delta));\n};\n\nDiffPatcher.prototype.reverse = function(delta) {\n return this.processor.process(new ReverseContext(delta));\n};\n\nDiffPatcher.prototype.unpatch = function(right, delta) {\n return this.patch(right, this.reverse(delta));\n};\n\nDiffPatcher.prototype.clone = function(value) {\n return clone(value);\n};\n\nexports.DiffPatcher = DiffPatcher;\n","// use as 2nd parameter for JSON.parse to revive Date instances\nmodule.exports = function dateReviver(key, value) {\n var parts;\n if (typeof value === 'string') {\n parts = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d*))?(Z|([+\\-])(\\d{2}):(\\d{2}))$/.exec(value);\n if (parts) {\n return new Date(Date.UTC(+parts[1], +parts[2] - 1, +parts[3], +parts[4], +parts[5], +parts[6], +(parts[7] || 0)));\n }\n }\n return value;\n};\n","\nexports.isBrowser = typeof window !== 'undefined';\n","\nvar Processor = function Processor(options){\n this.selfOptions = options || {};\n this.pipes = {};\n};\n\nProcessor.prototype.options = function(options) {\n if (options) {\n this.selfOptions = options;\n }\n return this.selfOptions;\n};\n\nProcessor.prototype.pipe = function(name, pipe) {\n if (typeof name === 'string') {\n if (typeof pipe === 'undefined') {\n return this.pipes[name];\n } else {\n this.pipes[name] = pipe;\n }\n }\n if (name && name.name) {\n pipe = name;\n if (pipe.processor === this) { return pipe; }\n this.pipes[pipe.name] = pipe;\n }\n pipe.processor = this;\n return pipe;\n};\n\nProcessor.prototype.process = function(input, pipe) {\n var context = input;\n context.options = this.options();\n var nextPipe = pipe || input.pipe || 'default';\n var lastPipe, lastContext;\n while (nextPipe) {\n if (typeof context.nextAfterChildren !== 'undefined') {\n // children processed and coming back to parent\n context.next = context.nextAfterChildren;\n context.nextAfterChildren = null;\n }\n\n if (typeof nextPipe === 'string') {\n nextPipe = this.pipe(nextPipe);\n }\n nextPipe.process(context);\n lastContext = context;\n lastPipe = nextPipe;\n nextPipe = null;\n if (context) {\n if (context.next) {\n context = context.next;\n nextPipe = lastContext.nextPipe || context.pipe || lastPipe;\n }\n }\n }\n return context.hasResult ? context.result : undefined;\n};\n\nexports.Processor = Processor;\n","var Pipe = function Pipe(name) {\n this.name = name;\n this.filters = [];\n};\n\nPipe.prototype.process = function(input) {\n if (!this.processor) {\n throw new Error('add this pipe to a processor before using it');\n }\n var debug = this.debug;\n var length = this.filters.length;\n var context = input;\n for (var index = 0; index < length; index++) {\n var filter = this.filters[index];\n if (debug) {\n this.log('filter: ' + filter.filterName);\n }\n filter(context);\n if (typeof context === 'object' && context.exiting) {\n context.exiting = false;\n break;\n }\n }\n if (!context.next && this.resultCheck) {\n this.resultCheck(context);\n }\n};\n\nPipe.prototype.log = function(msg) {\n console.log('[jsondiffpatch] ' + this.name + ' pipe, ' + msg);\n};\n\nPipe.prototype.append = function() {\n this.filters.push.apply(this.filters, arguments);\n return this;\n};\n\nPipe.prototype.prepend = function() {\n this.filters.unshift.apply(this.filters, arguments);\n return this;\n};\n\nPipe.prototype.indexOf = function(filterName) {\n if (!filterName) {\n throw new Error('a filter name is required');\n }\n for (var index = 0; index < this.filters.length; index++) {\n var filter = this.filters[index];\n if (filter.filterName === filterName) {\n return index;\n }\n }\n throw new Error('filter not found: ' + filterName);\n};\n\nPipe.prototype.list = function() {\n var names = [];\n for (var index = 0; index < this.filters.length; index++) {\n var filter = this.filters[index];\n names.push(filter.filterName);\n }\n return names;\n};\n\nPipe.prototype.after = function(filterName) {\n var index = this.indexOf(filterName);\n var params = Array.prototype.slice.call(arguments, 1);\n if (!params.length) {\n throw new Error('a filter is required');\n }\n params.unshift(index + 1, 0);\n Array.prototype.splice.apply(this.filters, params);\n return this;\n};\n\nPipe.prototype.before = function(filterName) {\n var index = this.indexOf(filterName);\n var params = Array.prototype.slice.call(arguments, 1);\n if (!params.length) {\n throw new Error('a filter is required');\n }\n params.unshift(index, 0);\n Array.prototype.splice.apply(this.filters, params);\n return this;\n};\n\nPipe.prototype.clear = function() {\n this.filters.length = 0;\n return this;\n};\n\nPipe.prototype.shouldHaveResult = function(should) {\n if (should === false) {\n this.resultCheck = null;\n return;\n }\n if (this.resultCheck) {\n return;\n }\n var pipe = this;\n this.resultCheck = function(context) {\n if (!context.hasResult) {\n console.log(context);\n var error = new Error(pipe.name + ' failed');\n error.noResult = true;\n throw error;\n }\n };\n return this;\n};\n\nexports.Pipe = Pipe;\n","var Context = require('./context').Context;\nvar defaultClone = require('../clone');\n\nvar DiffContext = function DiffContext(left, right) {\n this.left = left;\n this.right = right;\n this.pipe = 'diff';\n};\n\nDiffContext.prototype = new Context();\n\nDiffContext.prototype.setResult = function(result) {\n if (this.options.cloneDiffValues) {\n var clone = typeof this.options.cloneDiffValues === 'function' ?\n this.options.cloneDiffValues : defaultClone;\n if (typeof result[0] === 'object') {\n result[0] = clone(result[0]);\n }\n if (typeof result[1] === 'object') {\n result[1] = clone(result[1]);\n }\n }\n return Context.prototype.setResult.apply(this, arguments);\n};\n\nexports.DiffContext = DiffContext;\n","var Context = require('./context').Context;\n\nvar PatchContext = function PatchContext(left, delta) {\n this.left = left;\n this.delta = delta;\n this.pipe = 'patch';\n};\n\nPatchContext.prototype = new Context();\n\nexports.PatchContext = PatchContext;\n","var Context = require('./context').Context;\n\nvar ReverseContext = function ReverseContext(delta) {\n this.delta = delta;\n this.pipe = 'reverse';\n};\n\nReverseContext.prototype = new Context();\n\nexports.ReverseContext = ReverseContext;\n","\nvar isArray = (typeof Array.isArray === 'function') ?\n // use native function\n Array.isArray :\n // use instanceof operator\n function(a) {\n return a instanceof Array;\n };\n\nfunction cloneRegExp(re) {\n var regexMatch = /^\\/(.*)\\/([gimyu]*)$/.exec(re.toString());\n return new RegExp(regexMatch[1], regexMatch[2]);\n}\n\nfunction clone(arg) {\n if (typeof arg !== 'object') {\n return arg;\n }\n if (arg === null) {\n return null;\n }\n if (isArray(arg)) {\n return arg.map(clone);\n }\n if (arg instanceof Date) {\n return new Date(arg.getTime());\n }\n if (arg instanceof RegExp) {\n return cloneRegExp(arg);\n }\n var cloned = {};\n for (var name in arg) {\n if (Object.prototype.hasOwnProperty.call(arg, name)) {\n cloned[name] = clone(arg[name]);\n }\n }\n return cloned;\n}\n\nmodule.exports = clone;\n","var isArray = (typeof Array.isArray === 'function') ?\n // use native function\n Array.isArray :\n // use instanceof operator\n function(a) {\n return a instanceof Array;\n };\n\nvar diffFilter = function trivialMatchesDiffFilter(context) {\n if (context.left === context.right) {\n context.setResult(undefined).exit();\n return;\n }\n if (typeof context.left === 'undefined') {\n if (typeof context.right === 'function') {\n throw new Error('functions are not supported');\n }\n context.setResult([context.right]).exit();\n return;\n }\n if (typeof context.right === 'undefined') {\n context.setResult([context.left, 0, 0]).exit();\n return;\n }\n if (typeof context.left === 'function' || typeof context.right === 'function') {\n throw new Error('functions are not supported');\n }\n context.leftType = context.left === null ? 'null' : typeof context.left;\n context.rightType = context.right === null ? 'null' : typeof context.right;\n if (context.leftType !== context.rightType) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === 'boolean' || context.leftType === 'number') {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === 'object') {\n context.leftIsArray = isArray(context.left);\n }\n if (context.rightType === 'object') {\n context.rightIsArray = isArray(context.right);\n }\n if (context.leftIsArray !== context.rightIsArray) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n\n if (context.left instanceof RegExp) {\n if (context.right instanceof RegExp) {\n context.setResult([context.left.toString(), context.right.toString()]).exit();\n } else {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n }\n};\ndiffFilter.filterName = 'trivial';\n\nvar patchFilter = function trivialMatchesPatchFilter(context) {\n if (typeof context.delta === 'undefined') {\n context.setResult(context.left).exit();\n return;\n }\n context.nested = !isArray(context.delta);\n if (context.nested) {\n return;\n }\n if (context.delta.length === 1) {\n context.setResult(context.delta[0]).exit();\n return;\n }\n if (context.delta.length === 2) {\n if (context.left instanceof RegExp) {\n var regexArgs = /^\\/(.*)\\/([gimyu]+)$/.exec(context.delta[1]);\n if (regexArgs) {\n context.setResult(new RegExp(regexArgs[1], regexArgs[2])).exit();\n return;\n }\n }\n context.setResult(context.delta[1]).exit();\n return;\n }\n if (context.delta.length === 3 && context.delta[2] === 0) {\n context.setResult(undefined).exit();\n return;\n }\n};\npatchFilter.filterName = 'trivial';\n\nvar reverseFilter = function trivialReferseFilter(context) {\n if (typeof context.delta === 'undefined') {\n context.setResult(context.delta).exit();\n return;\n }\n context.nested = !isArray(context.delta);\n if (context.nested) {\n return;\n }\n if (context.delta.length === 1) {\n context.setResult([context.delta[0], 0, 0]).exit();\n return;\n }\n if (context.delta.length === 2) {\n context.setResult([context.delta[1], context.delta[0]]).exit();\n return;\n }\n if (context.delta.length === 3 && context.delta[2] === 0) {\n context.setResult([context.delta[0]]).exit();\n return;\n }\n};\nreverseFilter.filterName = 'trivial';\n\nexports.diffFilter = diffFilter;\nexports.patchFilter = patchFilter;\nexports.reverseFilter = reverseFilter;\n","var DiffContext = require('../contexts/diff').DiffContext;\nvar PatchContext = require('../contexts/patch').PatchContext;\nvar ReverseContext = require('../contexts/reverse').ReverseContext;\n\nvar collectChildrenDiffFilter = function collectChildrenDiffFilter(context) {\n if (!context || !context.children) {\n return;\n }\n var length = context.children.length;\n var child;\n var result = context.result;\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n if (typeof child.result === 'undefined') {\n continue;\n }\n result = result || {};\n result[child.childName] = child.result;\n }\n if (result && context.leftIsArray) {\n result._t = 'a';\n }\n context.setResult(result).exit();\n};\ncollectChildrenDiffFilter.filterName = 'collectChildren';\n\nvar objectsDiffFilter = function objectsDiffFilter(context) {\n if (context.leftIsArray || context.leftType !== 'object') {\n return;\n }\n\n var name, child, propertyFilter = context.options.propertyFilter;\n for (name in context.left) {\n if (!Object.prototype.hasOwnProperty.call(context.left, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n child = new DiffContext(context.left[name], context.right[name]);\n context.push(child, name);\n }\n for (name in context.right) {\n if (!Object.prototype.hasOwnProperty.call(context.right, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n if (typeof context.left[name] === 'undefined') {\n child = new DiffContext(undefined, context.right[name]);\n context.push(child, name);\n }\n }\n\n if (!context.children || context.children.length === 0) {\n context.setResult(undefined).exit();\n return;\n }\n context.exit();\n};\nobjectsDiffFilter.filterName = 'objects';\n\nvar patchFilter = function nestedPatchFilter(context) {\n if (!context.nested) {\n return;\n }\n if (context.delta._t) {\n return;\n }\n var name, child;\n for (name in context.delta) {\n child = new PatchContext(context.left[name], context.delta[name]);\n context.push(child, name);\n }\n context.exit();\n};\npatchFilter.filterName = 'objects';\n\nvar collectChildrenPatchFilter = function collectChildrenPatchFilter(context) {\n if (!context || !context.children) {\n return;\n }\n if (context.delta._t) {\n return;\n }\n var length = context.children.length;\n var child;\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n if (Object.prototype.hasOwnProperty.call(context.left, child.childName) && child.result === undefined) {\n delete context.left[child.childName];\n } else if (context.left[child.childName] !== child.result) {\n context.left[child.childName] = child.result;\n }\n }\n context.setResult(context.left).exit();\n};\ncollectChildrenPatchFilter.filterName = 'collectChildren';\n\nvar reverseFilter = function nestedReverseFilter(context) {\n if (!context.nested) {\n return;\n }\n if (context.delta._t) {\n return;\n }\n var name, child;\n for (name in context.delta) {\n child = new ReverseContext(context.delta[name]);\n context.push(child, name);\n }\n context.exit();\n};\nreverseFilter.filterName = 'objects';\n\nvar collectChildrenReverseFilter = function collectChildrenReverseFilter(context) {\n if (!context || !context.children) {\n return;\n }\n if (context.delta._t) {\n return;\n }\n var length = context.children.length;\n var child;\n var delta = {};\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n if (delta[child.childName] !== child.result) {\n delta[child.childName] = child.result;\n }\n }\n context.setResult(delta).exit();\n};\ncollectChildrenReverseFilter.filterName = 'collectChildren';\n\nexports.collectChildrenDiffFilter = collectChildrenDiffFilter;\nexports.objectsDiffFilter = objectsDiffFilter;\nexports.patchFilter = patchFilter;\nexports.collectChildrenPatchFilter = collectChildrenPatchFilter;\nexports.reverseFilter = reverseFilter;\nexports.collectChildrenReverseFilter = collectChildrenReverseFilter;\n","var DiffContext = require('../contexts/diff').DiffContext;\nvar PatchContext = require('../contexts/patch').PatchContext;\nvar ReverseContext = require('../contexts/reverse').ReverseContext;\n\nvar lcs = require('./lcs');\n\nvar ARRAY_MOVE = 3;\n\nvar isArray = (typeof Array.isArray === 'function') ?\n // use native function\n Array.isArray :\n // use instanceof operator\n function(a) {\n return a instanceof Array;\n };\n\nvar arrayIndexOf = typeof Array.prototype.indexOf === 'function' ?\n function(array, item) {\n return array.indexOf(item);\n } : function(array, item) {\n var length = array.length;\n for (var i = 0; i < length; i++) {\n if (array[i] === item) {\n return i;\n }\n }\n return -1;\n };\n\nfunction arraysHaveMatchByRef(array1, array2, len1, len2) {\n for (var index1 = 0; index1 < len1; index1++) {\n var val1 = array1[index1];\n for (var index2 = 0; index2 < len2; index2++) {\n var val2 = array2[index2];\n if (val1 === val2) {\n return true;\n }\n }\n }\n}\n\nfunction matchItems(array1, array2, index1, index2, context) {\n var value1 = array1[index1];\n var value2 = array2[index2];\n if (value1 === value2) {\n return true;\n }\n if (typeof value1 !== 'object' || typeof value2 !== 'object') {\n return false;\n }\n var objectHash = context.objectHash;\n if (!objectHash) {\n // no way to match objects was provided, try match by position\n return context.matchByPosition && index1 === index2;\n }\n var hash1;\n var hash2;\n if (typeof index1 === 'number') {\n context.hashCache1 = context.hashCache1 || [];\n hash1 = context.hashCache1[index1];\n if (typeof hash1 === 'undefined') {\n context.hashCache1[index1] = hash1 = objectHash(value1, index1);\n }\n } else {\n hash1 = objectHash(value1);\n }\n if (typeof hash1 === 'undefined') {\n return false;\n }\n if (typeof index2 === 'number') {\n context.hashCache2 = context.hashCache2 || [];\n hash2 = context.hashCache2[index2];\n if (typeof hash2 === 'undefined') {\n context.hashCache2[index2] = hash2 = objectHash(value2, index2);\n }\n } else {\n hash2 = objectHash(value2);\n }\n if (typeof hash2 === 'undefined') {\n return false;\n }\n return hash1 === hash2;\n}\n\nvar diffFilter = function arraysDiffFilter(context) {\n if (!context.leftIsArray) {\n return;\n }\n\n var matchContext = {\n objectHash: context.options && context.options.objectHash,\n matchByPosition: context.options && context.options.matchByPosition\n };\n var commonHead = 0;\n var commonTail = 0;\n var index;\n var index1;\n var index2;\n var array1 = context.left;\n var array2 = context.right;\n var len1 = array1.length;\n var len2 = array2.length;\n\n var child;\n\n if (len1 > 0 && len2 > 0 && !matchContext.objectHash &&\n typeof matchContext.matchByPosition !== 'boolean') {\n matchContext.matchByPosition = !arraysHaveMatchByRef(array1, array2, len1, len2);\n }\n\n // separate common head\n while (commonHead < len1 && commonHead < len2 &&\n matchItems(array1, array2, commonHead, commonHead, matchContext)) {\n index = commonHead;\n child = new DiffContext(context.left[index], context.right[index]);\n context.push(child, index);\n commonHead++;\n }\n // separate common tail\n while (commonTail + commonHead < len1 && commonTail + commonHead < len2 &&\n matchItems(array1, array2, len1 - 1 - commonTail, len2 - 1 - commonTail, matchContext)) {\n index1 = len1 - 1 - commonTail;\n index2 = len2 - 1 - commonTail;\n child = new DiffContext(context.left[index1], context.right[index2]);\n context.push(child, index2);\n commonTail++;\n }\n var result;\n if (commonHead + commonTail === len1) {\n if (len1 === len2) {\n // arrays are identical\n context.setResult(undefined).exit();\n return;\n }\n // trivial case, a block (1 or more consecutive items) was added\n result = result || {\n _t: 'a'\n };\n for (index = commonHead; index < len2 - commonTail; index++) {\n result[index] = [array2[index]];\n }\n context.setResult(result).exit();\n return;\n }\n if (commonHead + commonTail === len2) {\n // trivial case, a block (1 or more consecutive items) was removed\n result = result || {\n _t: 'a'\n };\n for (index = commonHead; index < len1 - commonTail; index++) {\n result['_' + index] = [array1[index], 0, 0];\n }\n context.setRe