http/js/api/topobject.js
function sameState(a, b){
	return a.object === b.object && a.property === b.property
}
function sameState(a, b){
	return a.object === b.object && a.property === b.property
}
/*
TopObjectHandle.prototype.fork = function fork(cb){

var res = this.parent.createFork(this, cb)
res.prepare();
console.log('forked: ' + res)
return res;
} /*
TopObjectHandle.prototype.setForked = function fork(objHandle){
_.assert(this.getLocalMode())

if(this._forkedObject === objHandle) return

var sourceId = objHandle._internalId()
this.adjustTopObjectToOwn()
this.persistEdit(editCodes.refork, {sourceId: sourceId})

console.log('set forked for ' + this.objectId + ' to ' + sourceId)

this._rebuild()
this._applyRefork(sourceId)
}