mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-10-29 06:37:39 +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