mirror of
				https://github.com/Jermolene/TiddlyWiki5
				synced 2025-10-30 23:23:02 +00:00 
			
		
		
		
	Bugfix: Object.freeze() called on null
For five minutes I stared at the following code...
    if(value != null && typeof value === "object") {
      Object.freeze(value);
    }
... and at the error message that led me to this code: `Object.freeze called on non-object`
And then I remembered that js treads null as object (http://www.ecma-international.org/ecma-262/5.1/#sec-11.4.3). This means the `typeof === "object"` will not discover null and freeze will throw an error...
So `value != null` will also work when value is undefined.
A hard to find bug ;)
			
			
This commit is contained in:
		| @@ -793,7 +793,7 @@ $tw.Tiddler = function(/* [fields,] fields */) { | |||||||
| 					value = src[t]; | 					value = src[t]; | ||||||
| 				} | 				} | ||||||
| 				// Freeze the field to keep it immutable | 				// Freeze the field to keep it immutable | ||||||
| 				if(typeof value === "object") { | 				if(value != null && typeof value === "object") { | ||||||
| 					Object.freeze(value); | 					Object.freeze(value); | ||||||
| 				} | 				} | ||||||
| 				this.fields[t] = value; | 				this.fields[t] = value; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Küppers
					Felix Küppers