Freeze array or object tiddler fields

Previously object fields like the tags array weren’t frozen.
This commit is contained in:
Jermolene 2014-03-17 08:58:42 +00:00
parent 721e333a20
commit 279626a3e3
1 changed files with 9 additions and 3 deletions

View File

@ -743,12 +743,18 @@ $tw.Tiddler = function(/* [fields,] fields */) {
}
} else {
// Parse the field with the associated field module (if any)
var fieldModule = $tw.Tiddler.fieldModules[t];
var fieldModule = $tw.Tiddler.fieldModules[t],
value;
if(fieldModule && fieldModule.parse) {
this.fields[t] = fieldModule.parse.call(this,src[t]);
value = fieldModule.parse.call(this,src[t]);
} else {
this.fields[t] = src[t];
value = src[t];
}
// Freeze the field to keep it immutable
if(typeof value === "object") {
Object.freeze(value);
}
this.fields[t] = value;
}
}
}