@@ -4,6 +4,7 @@ import Model from './Model.mjs';
44
55const
66 dataSymbol = Symbol . for ( 'data' ) ,
7+ isModifiedSymbol = Symbol . for ( 'isModified' ) ,
78 originalDataSymbol = Symbol . for ( 'originalData' ) ;
89
910let instance ;
@@ -89,7 +90,9 @@ class RecordFactory extends Base {
8990 if ( ! Neo . isEqual ( value , oldValue ) ) {
9091 instance . setRecordData ( { fieldName : fieldPath , model, record : me , value} ) ;
9192
92- me . _isModified = me . isModified ;
93+ if ( ! model . trackModifiedFields ) {
94+ me [ isModifiedSymbol ] = true
95+ }
9396
9497 instance . onRecordChange ( {
9598 fields : [ { name : fieldPath , oldValue, value} ] ,
@@ -145,10 +148,10 @@ class RecordFactory extends Base {
145148 let me = this ;
146149
147150 if ( model . trackModifiedFields ) {
148- return Neo . isEqual ( me [ dataSymbol ] , me [ originalDataSymbol ] )
151+ return ! Neo . isEqual ( me [ dataSymbol ] , me [ originalDataSymbol ] )
149152 }
150153
151- return me . _isModified
154+ return me [ isModifiedSymbol ]
152155 }
153156
154157 /**
@@ -165,7 +168,7 @@ class RecordFactory extends Base {
165168 }
166169
167170 me . setSilent ( config ) ; // We do not want to fire change events when constructing
168- me . _isModified = false
171+ me [ isModifiedSymbol ] = false
169172 }
170173
171174 /**
@@ -205,7 +208,7 @@ class RecordFactory extends Base {
205208 * @param {Object } fields
206209 */
207210 reset ( fields ) {
208- this . setOriginal ( fields )
211+ this . setOriginal ( fields ) ;
209212 this . set ( fields )
210213 }
211214
@@ -397,13 +400,13 @@ class RecordFactory extends Base {
397400 * @param {Boolean } data.useOriginalData=false true will apply changes to the originalData symbol
398401 */
399402 setRecordFields ( { changedFields= [ ] , fields, model, record, silent= false , useOriginalData= false } ) {
400- if ( useOriginalData && ! model . trackModifiedFields ) {
403+ let { fieldsMap, trackModifiedFields} = model ,
404+ fieldExists , oldValue ;
405+
406+ if ( ! trackModifiedFields && useOriginalData ) {
401407 return
402408 }
403409
404- let { fieldsMap} = model ,
405- fieldExists , oldValue ;
406-
407410 Object . entries ( fields ) . forEach ( ( [ key , value ] ) => {
408411 fieldExists = fieldsMap . has ( key ) ;
409412
@@ -425,8 +428,8 @@ class RecordFactory extends Base {
425428 if ( ! Neo . isEqual ( oldValue , value ) ) {
426429 instance . setRecordData ( { fieldName : key , model, record, useOriginalData, value} ) ;
427430
428- if ( ! useOriginalData ) {
429- record . _isModified = true
431+ if ( ! trackModifiedFields && ! useOriginalData ) {
432+ record [ isModifiedSymbol ] = true
430433 }
431434
432435 changedFields . push ( { name : key , oldValue, value} )
0 commit comments