]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Fix resolver caching issue when setting values (#9938)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Wed, 1 Dec 2021 22:53:55 +0000 (00:53 +0200)
committerGitHub <noreply@github.com>
Wed, 1 Dec 2021 22:53:55 +0000 (17:53 -0500)
src/helpers/helpers.config.js
test/specs/helpers.config.tests.js

index 4d27f9e5b025376f3c46625f75d9cd20e9726795..30567c912ec9f47ef6671c91e64a5a33a6541676 100644 (file)
@@ -76,8 +76,7 @@ export function _createResolver(scopes, prefixes = [''], rootScopes = scopes, fa
      */
     set(target, prop, value) {
       const storage = target._storage || (target._storage = getTarget());
-      storage[prop] = value; // set to top level scope
-      delete target[prop]; // remove from cache
+      target[prop] = storage[prop] = value; // set to top level scope + cache
       delete target._keys; // remove cached keys
       return true;
     }
index 58e295b580b9f7999daec4b0fb62de83d4b5e61a..76d056a33279644bef90af9492985e8f0af12948 100644 (file)
@@ -492,6 +492,7 @@ describe('Chart.helpers.config', function() {
         resolver.value = false;
         expect(options.value).toBeFalse();
         expect(defaults.value).toBeTrue();
+        expect(resolver.value).toBeFalse();
       });
 
       it('should set values of sub-objects to first scope', function() {
@@ -505,6 +506,7 @@ describe('Chart.helpers.config', function() {
         resolver.sub.value = false;
         expect(options.sub.value).toBeFalse();
         expect(defaults.sub.value).toBeTrue();
+        expect(resolver.sub.value).toBeFalse();
       });
 
       it('should throw when setting a value and options is frozen', function() {