cc.Object.Flags.DontSave在2.4.8编辑器中的表现有点问题

下面这个代码,期望的表现是:

在编辑器中,当设置好预制体后,会创建子节点,
每次保存代码返回编辑器,子节点数量不会因此变多。

在2.4.2版本里确实是这样的,每次返回虽然重新创建了子节点,但旧的子节点已经自动被清除了(或者说没有保存下来)。
但是在2.4.8版本每次保存代码返回编辑器,就会多一个子节点。

重新打开场景,两个版本的表现都是对的,都只有一个子节点。

const { ccclass, property, executeInEditMode } = cc._decorator;
@ccclass
@executeInEditMode
export default class Test extends cc.Component {

    @property
    private _prefab: cc.Prefab = null;

    @property(cc.Prefab)
    public set prefab(v: cc.Prefab) {
        this._prefab = v;
        this._onPrefabChanged();
    }
    public get prefab(): cc.Prefab {
        return this._prefab;
    }

    onLoad() {
        this._onPrefabChanged();
    }

    _onPrefabChanged() {
        let prefab = this._prefab; 
        if (!prefab) {
            return;
        }
        let node = cc.instantiate(prefab);
        // cc.Object["Flags"].DontSave          // 当前节点不会被保存到prefab文件里
        // cc.Object["Flags"].LockedInEditor    // 当前节点及子节点在编辑器里不会被点击到
        // cc.Object["Flags"].HideInHierarchy   // 当前节点及子节点在编辑器里不显示
        node["_objFlags"] |= (
            cc.Object["Flags"].DontSave
            | cc.Object["Flags"].LockedInEditor
            | cc.Object["Flags"].HideInHierarchy
        );
        node.parent = this.node;
        cc.log(this.node.childrenCount);
    }

}