From bf756c927979d7138d2bc937e3d7ef79eabc33a3 Mon Sep 17 00:00:00 2001 From: djmaze Date: Tue, 28 Sep 2021 14:03:07 +0200 Subject: [PATCH] Remove unused data from KnockoutJS --- .../src/binding/bindingAttributeSyntax.js | 18 ------------------ .../src/binding/defaultBindings/attr.js | 3 +-- .../src/binding/defaultBindings/ifIfnotWith.js | 6 ++---- .../src/binding/defaultBindings/textInput.js | 11 ----------- .../observableArray.changeTracking.js | 4 ++-- vendors/knockout/src/templating/templating.js | 3 +-- 6 files changed, 6 insertions(+), 39 deletions(-) diff --git a/vendors/knockout/src/binding/bindingAttributeSyntax.js b/vendors/knockout/src/binding/bindingAttributeSyntax.js index 027c1b6b1..3436dffa1 100644 --- a/vendors/knockout/src/binding/bindingAttributeSyntax.js +++ b/vendors/knockout/src/binding/bindingAttributeSyntax.js @@ -235,24 +235,6 @@ } }; - // Given a function that returns bindings, create and return a new object that contains - // binding value-accessors functions. Each accessor function calls the original function - // so that it always gets the latest value and all dependencies are captured. This is used - // by ko.applyBindingsToNode and getBindingsAndMakeAccessors. - function makeAccessorsFromFunction(callback) { - return ko.utils.objectMap(ko.dependencyDetection.ignore(callback), (value, key) => - () => callback()[key] - ); - } - - // Given a bindings function or object, create and return a new object that contains - // binding value-accessors functions. This is used by ko.applyBindingsToNode. - function makeBindingAccessors(bindings, context, node) { - return (typeof bindings === 'function') - ? makeAccessorsFromFunction(bindings.bind(null, context, node)) - : ko.utils.objectMap(bindings, value => () => value); - } - function validateThatBindingIsAllowedForVirtualElements(bindingName) { var validator = ko.virtualElements.allowedBindings[bindingName]; if (!validator) diff --git a/vendors/knockout/src/binding/defaultBindings/attr.js b/vendors/knockout/src/binding/defaultBindings/attr.js index 524756ec3..15baf5e09 100644 --- a/vendors/knockout/src/binding/defaultBindings/attr.js +++ b/vendors/knockout/src/binding/defaultBindings/attr.js @@ -1,6 +1,5 @@ -var attrHtmlToJavaScriptMap = { 'class': 'className', 'for': 'htmlFor' }; ko.bindingHandlers['attr'] = { - 'update': (element, valueAccessor, allBindings) => { + 'update': (element, valueAccessor) => { var value = ko.utils.unwrapObservable(valueAccessor()) || {}; ko.utils.objectForEach(value, function(attrName, attrValue) { attrValue = ko.utils.unwrapObservable(attrValue); diff --git a/vendors/knockout/src/binding/defaultBindings/ifIfnotWith.js b/vendors/knockout/src/binding/defaultBindings/ifIfnotWith.js index 46282aae5..b870997d6 100644 --- a/vendors/knockout/src/binding/defaultBindings/ifIfnotWith.js +++ b/vendors/knockout/src/binding/defaultBindings/ifIfnotWith.js @@ -4,10 +4,10 @@ function makeWithIfBinding(bindingKey, isWith, isNot) { ko.bindingHandlers[bindingKey] = { 'init': (element, valueAccessor, allBindings, viewModel, bindingContext) => { - var didDisplayOnLastUpdate, savedNodes, contextOptions = {}, needAsyncContext; + var savedNodes, contextOptions = {}, needAsyncContext; if (isWith) { - var as = allBindings.get('as'), noChildContext = false; + var as = allBindings.get('as'); contextOptions = { 'as': as, 'exportDependencies': true }; } @@ -52,8 +52,6 @@ function makeWithIfBinding(bindingKey, isWith, isNot) { ko.bindingEvent.notify(element, ko.bindingEvent.childrenComplete); } - didDisplayOnLastUpdate = shouldDisplay; - }, { disposeWhenNodeIsRemoved: element }); return { 'controlsDescendantBindings': true }; diff --git a/vendors/knockout/src/binding/defaultBindings/textInput.js b/vendors/knockout/src/binding/defaultBindings/textInput.js index 1e491b14f..29e0fa951 100644 --- a/vendors/knockout/src/binding/defaultBindings/textInput.js +++ b/vendors/knockout/src/binding/defaultBindings/textInput.js @@ -17,17 +17,6 @@ ko.bindingHandlers['textInput'] = { } }; - var deferUpdateModel = event => { - if (!timeoutHandle) { - // The elementValueBeforeEvent variable is set *only* during the brief gap between an - // event firing and the updateModel function running. This allows us to ignore model - // updates that are from the previous state of the element, usually due to techniques - // such as rateLimit. Such updates, if not ignored, can cause keystrokes to be lost. - elementValueBeforeEvent = element.value; - timeoutHandle = setTimeout(updateModel, 4); - } - }; - var updateView = () => { var modelValue = ko.utils.unwrapObservable(valueAccessor()); diff --git a/vendors/knockout/src/subscribables/observableArray.changeTracking.js b/vendors/knockout/src/subscribables/observableArray.changeTracking.js index c6e56bdbb..1fcc15026 100644 --- a/vendors/knockout/src/subscribables/observableArray.changeTracking.js +++ b/vendors/knockout/src/subscribables/observableArray.changeTracking.js @@ -118,7 +118,7 @@ ko.extenders['trackArrayChanges'] = (target, options) => { case 'push': offset = arrayLength; case 'unshift': - for (var index = 0; index < argsLength; index++) { + for (let index = 0; index < argsLength; index++) { pushDiff('added', args[index], offset + index); } break; @@ -139,7 +139,7 @@ ko.extenders['trackArrayChanges'] = (target, options) => { endAddIndex = startIndex + argsLength - 2, endIndex = Math.max(endDeleteIndex, endAddIndex), additions = [], deletions = []; - for (var index = startIndex, argsIndex = 2; index < endIndex; ++index, ++argsIndex) { + for (let index = startIndex, argsIndex = 2; index < endIndex; ++index, ++argsIndex) { if (index < endDeleteIndex) deletions.push(pushDiff('deleted', rawArray[index], index)); if (index < endAddIndex) diff --git a/vendors/knockout/src/templating/templating.js b/vendors/knockout/src/templating/templating.js index 5b3a0c215..e8aa8d1f9 100644 --- a/vendors/knockout/src/templating/templating.js +++ b/vendors/knockout/src/templating/templating.js @@ -60,8 +60,7 @@ : null; } - function executeTemplate(targetNodeOrNodeArray, renderMode, template, bindingContext, options) { - options = options || {}; + function executeTemplate(targetNodeOrNodeArray, renderMode, template, bindingContext) { var firstTargetNode = targetNodeOrNodeArray && getFirstNodeFromPossibleArray(targetNodeOrNodeArray); var templateDocument = (firstTargetNode || template || {}).ownerDocument;