diff --git a/vendors/knockout/src/binding/bindingAttributeSyntax.js b/vendors/knockout/src/binding/bindingAttributeSyntax.js index 41d6d5d55..bf0f9d4bc 100644 --- a/vendors/knockout/src/binding/bindingAttributeSyntax.js +++ b/vendors/knockout/src/binding/bindingAttributeSyntax.js @@ -78,7 +78,7 @@ ko.bindingContext = class { return self['$data']; }; - if (options?.exportDependencies) { + if (options?.['exportDependencies']) { // The "exportDependencies" option means that the calling code will track any dependencies and re-create // the binding context when they change. updateContext(); @@ -104,7 +104,7 @@ ko.bindingContext = class { // But this does not mean that the $data value of the child context will also get updated. If the child // view model also depends on the parent view model, you must provide a function that returns the correct // view model on each update. - createChildContext(dataItemOrAccessor, options) { + 'createChildContext'(dataItemOrAccessor, options) { return new ko.bindingContext(dataItemOrAccessor, this, (self, parentContext) => { // Extend the context hierarchy by setting the appropriate pointers self['$parentContext'] = parentContext; @@ -380,7 +380,7 @@ function applyBindingsToNodeInternal(node, sourceBindings, bindingContext) { var initResult = handlerInitFn(node, getValueAccessor(bindingKey), allBindings, contextToExtend['$data'], contextToExtend); // If this binding handler claims to control descendant bindings, make a note of this - if (initResult && initResult.controlsDescendantBindings) { + if (initResult && initResult['controlsDescendantBindings']) { if (bindingHandlerThatControlsDescendantBindings !== undefined) throw new Error("Multiple bindings (" + bindingHandlerThatControlsDescendantBindings + " and " + bindingKey + ") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element."); bindingHandlerThatControlsDescendantBindings = bindingKey; diff --git a/vendors/knockout/src/binding/defaultBindings/html.js b/vendors/knockout/src/binding/defaultBindings/html.js index a3a760825..f27e64d6e 100644 --- a/vendors/knockout/src/binding/defaultBindings/html.js +++ b/vendors/knockout/src/binding/defaultBindings/html.js @@ -1,7 +1,7 @@ ko.bindingHandlers['html'] = { 'init': () => ( // Prevent binding on the dynamically-injected HTML (as developers are unlikely to expect that, and it has security implications) - { controlsDescendantBindings: true } + { 'controlsDescendantBindings': true } ), 'update': (element, valueAccessor) => { // setHtml will unwrap the value if needed diff --git a/vendors/knockout/src/binding/defaultBindings/ifIfnotWith.js b/vendors/knockout/src/binding/defaultBindings/ifIfnotWith.js index c6b9151d3..c124b250e 100644 --- a/vendors/knockout/src/binding/defaultBindings/ifIfnotWith.js +++ b/vendors/knockout/src/binding/defaultBindings/ifIfnotWith.js @@ -7,7 +7,7 @@ function makeWithIfBinding(bindingKey, isWith, isNot) { var savedNodes, contextOptions = {}, needAsyncContext; if (isWith) { - contextOptions = { exportDependencies: true }; + contextOptions = { 'exportDependencies': true }; } needAsyncContext = allBindings['has'](ko.bindingEvent.descendantsComplete); @@ -26,7 +26,7 @@ function makeWithIfBinding(bindingKey, isWith, isNot) { contextOptions['dataDependency'] = ko.dependencyDetection.computed(); childContext = isWith - ? bindingContext.createChildContext(typeof value == "function" ? value : valueAccessor, contextOptions) + ? bindingContext['createChildContext'](typeof value == "function" ? value : valueAccessor, contextOptions) : (ko.dependencyDetection.getDependenciesCount() ? bindingContext['extend'](null, contextOptions) : bindingContext @@ -50,7 +50,7 @@ function makeWithIfBinding(bindingKey, isWith, isNot) { }, { disposeWhenNodeIsRemoved: element }); - return { controlsDescendantBindings: true }; + return { 'controlsDescendantBindings': true }; } }; ko.virtualElements.allowedBindings[bindingKey] = true; diff --git a/vendors/knockout/src/binding/defaultBindings/options.js b/vendors/knockout/src/binding/defaultBindings/options.js index b9b33df48..2f34701bc 100644 --- a/vendors/knockout/src/binding/defaultBindings/options.js +++ b/vendors/knockout/src/binding/defaultBindings/options.js @@ -11,7 +11,7 @@ ko.bindingHandlers['options'] = { } // Ensures that the binding processor doesn't try to bind the options - return { controlsDescendantBindings: true }; + return { 'controlsDescendantBindings': true }; }, 'update': (element, valueAccessor, allBindings) => { diff --git a/vendors/knockout/src/binding/defaultBindings/text.js b/vendors/knockout/src/binding/defaultBindings/text.js index e76e8f583..cdbb72f9e 100644 --- a/vendors/knockout/src/binding/defaultBindings/text.js +++ b/vendors/knockout/src/binding/defaultBindings/text.js @@ -2,7 +2,7 @@ ko.bindingHandlers['text'] = { 'init': () => ( // Prevent binding on the dynamically-injected text node (as developers are unlikely to expect that, and it has security implications). // It should also make things faster, as we no longer have to consider whether the text node might be bindable. - { controlsDescendantBindings: true } + { 'controlsDescendantBindings': true } ), 'update': (element, valueAccessor) => { if (8 === element.nodeType) { diff --git a/vendors/knockout/src/components/componentBinding.js b/vendors/knockout/src/components/componentBinding.js index 9e2931c10..78331497a 100644 --- a/vendors/knockout/src/components/componentBinding.js +++ b/vendors/knockout/src/components/componentBinding.js @@ -59,12 +59,12 @@ currentViewModel = componentDefinition['createViewModel'](componentParams, { 'element': element }); - ko.applyBindingsToDescendants(asyncContext.createChildContext(currentViewModel, {}), element); + ko.applyBindingsToDescendants(asyncContext['createChildContext'](currentViewModel, {}), element); } }); }, { disposeWhenNodeIsRemoved: element }); - return { controlsDescendantBindings: true }; + return { 'controlsDescendantBindings': true }; } }; diff --git a/vendors/knockout/src/subscribables/dependentObservable.js b/vendors/knockout/src/subscribables/dependentObservable.js index cbd9ba6b5..c9a5ecdb2 100644 --- a/vendors/knockout/src/subscribables/dependentObservable.js +++ b/vendors/knockout/src/subscribables/dependentObservable.js @@ -25,7 +25,7 @@ ko.computed = (evaluatorFunctionOrOptions, options) => { pure: false, isSleeping: false, readFunction: options["read"], - disposeWhenNodeIsRemoved: options.disposeWhenNodeIsRemoved, + disposeWhenNodeIsRemoved: options.disposeWhenNodeIsRemoved || null, disposeWhen: options.disposeWhen, domNodeDisposalCallback: null, dependencyTracking: {}, diff --git a/vendors/knockout/src/templating/templating.js b/vendors/knockout/src/templating/templating.js index 454571233..e394b42fb 100644 --- a/vendors/knockout/src/templating/templating.js +++ b/vendors/knockout/src/templating/templating.js @@ -102,7 +102,7 @@ // Ensure we've got a proper binding context to work with var bindingContext = (dataOrBindingContext instanceof ko.bindingContext) ? dataOrBindingContext - : new ko.bindingContext(dataOrBindingContext, null, null, { exportDependencies: true }); + : new ko.bindingContext(dataOrBindingContext, null, null, { "exportDependencies": true }); var templateName = resolveTemplateName(template, bindingContext['$data'], bindingContext); executeTemplate(targetNodeOrNodeArray, true, templateName, bindingContext, options); @@ -122,7 +122,7 @@ // This will be called by setDomNodeChildrenFromArrayMapping to get the nodes to add to targetNode var executeTemplateForArrayItem = (arrayValue, index) => { // Support selecting template as a function of the data being rendered - arrayItemContext = parentBindingContext.createChildContext(arrayValue, { + arrayItemContext = parentBindingContext['createChildContext'](arrayValue, { 'extend': context => context['$index'] = index }); @@ -247,8 +247,8 @@ // Render once for this single data point (or use the viewModel if no data was provided) var innerBindingContext = bindingContext; if ('data' in options) { - innerBindingContext = bindingContext.createChildContext(options['data'], { - exportDependencies: true + innerBindingContext = bindingContext['createChildContext'](options['data'], { + 'exportDependencies': true }); } templateComputed = renderTemplate(template, innerBindingContext, options, element);