non-important update

This commit is contained in:
DadaMonad 2015-04-14 17:14:43 +00:00
parent 4de979bc33
commit 5417ffb999
18 changed files with 13595 additions and 4665 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -19,22 +19,22 @@ adaptConnector = function(connector, engine, HB, execution_listener) {
} }
execution_listener.push(send_); execution_listener.push(send_);
encode_state_vector = function(v) { encode_state_vector = function(v) {
var results, value; var value, _results;
results = []; _results = [];
for (name in v) { for (name in v) {
value = v[name]; value = v[name];
results.push({ _results.push({
user: name, user: name,
state: value state: value
}); });
} }
return results; return _results;
}; };
parse_state_vector = function(v) { parse_state_vector = function(v) {
var i, len, s, state_vector; var s, state_vector, _i, _len;
state_vector = {}; state_vector = {};
for (i = 0, len = v.length; i < len; i++) { for (_i = 0, _len = v.length; _i < _len; _i++) {
s = v[i]; s = v[_i];
state_vector[s.user] = s.state; state_vector[s.user] = s.state;
} }
return state_vector; return state_vector;

View File

@ -47,12 +47,12 @@ module.exports = {
return this.role === "slave"; return this.role === "slave";
}, },
findNewSyncTarget: function() { findNewSyncTarget: function() {
var c, ref, user; var c, user, _ref;
this.current_sync_target = null; this.current_sync_target = null;
if (this.syncMethod === "syncAll") { if (this.syncMethod === "syncAll") {
ref = this.connections; _ref = this.connections;
for (user in ref) { for (user in _ref) {
c = ref[user]; c = _ref[user];
if (!c.is_synced) { if (!c.is_synced) {
this.performSync(user); this.performSync(user);
break; break;
@ -69,12 +69,12 @@ module.exports = {
return this.findNewSyncTarget(); return this.findNewSyncTarget();
}, },
userJoined: function(user, role) { userJoined: function(user, role) {
var base; var _base;
if (role == null) { if (role == null) {
throw new Error("Internal: You must specify the role of the joined user! E.g. userJoined('uid:3939','slave')"); throw new Error("Internal: You must specify the role of the joined user! E.g. userJoined('uid:3939','slave')");
} }
if ((base = this.connections)[user] == null) { if ((_base = this.connections)[user] == null) {
base[user] = {}; _base[user] = {};
} }
this.connections[user].is_synced = false; this.connections[user].is_synced = false;
if ((!this.is_synced) || this.syncMethod === "syncAll") { if ((!this.is_synced) || this.syncMethod === "syncAll") {
@ -116,7 +116,7 @@ module.exports = {
throw new Error "You must implement send!" throw new Error "You must implement send!"
*/ */
performSync: function(user) { performSync: function(user) {
var _hb, hb, i, len, o; var hb, o, _hb, _i, _len;
if (this.current_sync_target == null) { if (this.current_sync_target == null) {
this.current_sync_target = user; this.current_sync_target = user;
this.send(user, { this.send(user, {
@ -128,8 +128,8 @@ module.exports = {
this.sent_hb_to_all_users = true; this.sent_hb_to_all_users = true;
hb = this.getHB([]).hb; hb = this.getHB([]).hb;
_hb = []; _hb = [];
for (i = 0, len = hb.length; i < len; i++) { for (_i = 0, _len = hb.length; _i < _len; _i++) {
o = hb[i]; o = hb[_i];
_hb.push(o); _hb.push(o);
if (_hb.length > 10) { if (_hb.length > 10) {
this.broadcast({ this.broadcast({
@ -147,7 +147,7 @@ module.exports = {
} }
}, },
performSyncWithMaster: function(user) { performSyncWithMaster: function(user) {
var _hb, hb, i, len, o; var hb, o, _hb, _i, _len;
this.current_sync_target = user; this.current_sync_target = user;
this.send(user, { this.send(user, {
sync_step: "getHB", sync_step: "getHB",
@ -156,8 +156,8 @@ module.exports = {
}); });
hb = this.getHB([]).hb; hb = this.getHB([]).hb;
_hb = []; _hb = [];
for (i = 0, len = hb.length; i < len; i++) { for (_i = 0, _len = hb.length; _i < _len; _i++) {
o = hb[i]; o = hb[_i];
_hb.push(o); _hb.push(o);
if (_hb.length > 10) { if (_hb.length > 10) {
this.broadcast({ this.broadcast({
@ -173,13 +173,13 @@ module.exports = {
}); });
}, },
setStateSynced: function() { setStateSynced: function() {
var f, i, len, ref; var f, _i, _len, _ref;
if (!this.is_synced) { if (!this.is_synced) {
this.is_synced = true; this.is_synced = true;
if (this.compute_when_synced != null) { if (this.compute_when_synced != null) {
ref = this.compute_when_synced; _ref = this.compute_when_synced;
for (i = 0, len = ref.length; i < len; i++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
f = ref[i]; f = _ref[_i];
f(); f();
} }
delete this.compute_when_synced; delete this.compute_when_synced;
@ -188,15 +188,15 @@ module.exports = {
} }
}, },
receiveMessage: function(sender, res) { receiveMessage: function(sender, res) {
var _hb, data, f, hb, i, j, len, len1, o, ref, results, sendApplyHB, send_again; var data, f, hb, o, sendApplyHB, send_again, _hb, _i, _j, _len, _len1, _ref, _results;
if (res.sync_step == null) { if (res.sync_step == null) {
ref = this.receive_handlers; _ref = this.receive_handlers;
results = []; _results = [];
for (i = 0, len = ref.length; i < len; i++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
f = ref[i]; f = _ref[_i];
results.push(f(sender, res)); _results.push(f(sender, res));
} }
return results; return _results;
} else { } else {
if (sender === this.user_id) { if (sender === this.user_id) {
return; return;
@ -218,8 +218,8 @@ module.exports = {
}; };
})(this); })(this);
} }
for (j = 0, len1 = hb.length; j < len1; j++) { for (_j = 0, _len1 = hb.length; _j < _len1; _j++) {
o = hb[j]; o = hb[_j];
_hb.push(o); _hb.push(o);
if (_hb.length > 10) { if (_hb.length > 10) {
sendApplyHB({ sendApplyHB({
@ -262,25 +262,25 @@ module.exports = {
parseMessageFromXml: function(m) { parseMessageFromXml: function(m) {
var parse_array, parse_object; var parse_array, parse_object;
parse_array = function(node) { parse_array = function(node) {
var i, len, n, ref, results; var n, _i, _len, _ref, _results;
ref = node.children; _ref = node.children;
results = []; _results = [];
for (i = 0, len = ref.length; i < len; i++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
n = ref[i]; n = _ref[_i];
if (n.getAttribute("isArray") === "true") { if (n.getAttribute("isArray") === "true") {
results.push(parse_array(n)); _results.push(parse_array(n));
} else { } else {
results.push(parse_object(n)); _results.push(parse_object(n));
} }
} }
return results; return _results;
}; };
parse_object = function(node) { parse_object = function(node) {
var i, int, json, len, n, name, ref, ref1, value; var int, json, n, name, value, _i, _len, _ref, _ref1;
json = {}; json = {};
ref = node.attrs; _ref = node.attrs;
for (name in ref) { for (name in _ref) {
value = ref[name]; value = _ref[name];
int = parseInt(value); int = parseInt(value);
if (isNaN(int) || ("" + int) !== value) { if (isNaN(int) || ("" + int) !== value) {
json[name] = value; json[name] = value;
@ -288,9 +288,9 @@ module.exports = {
json[name] = int; json[name] = int;
} }
} }
ref1 = node.children; _ref1 = node.children;
for (i = 0, len = ref1.length; i < len; i++) { for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
n = ref1[i]; n = _ref1[_i];
name = n.name; name = n.name;
if (n.getAttribute("isArray") === "true") { if (n.getAttribute("isArray") === "true") {
json[name] = parse_array(n); json[name] = parse_array(n);
@ -321,10 +321,10 @@ module.exports = {
return m; return m;
}; };
encode_array = function(m, array) { encode_array = function(m, array) {
var e, i, len; var e, _i, _len;
m.setAttribute("isArray", "true"); m.setAttribute("isArray", "true");
for (i = 0, len = array.length; i < len; i++) { for (_i = 0, _len = array.length; _i < _len; _i++) {
e = array[i]; e = array[_i];
if (e.constructor === Object) { if (e.constructor === Object) {
encode_object(m.c("array-element"), e); encode_object(m.c("array-element"), e);
} else { } else {

View File

@ -13,9 +13,9 @@ if (typeof window !== "undefined" && window !== null) {
} }
Engine = (function() { Engine = (function() {
function Engine(HB, types) { function Engine(_at_HB, _at_types) {
this.HB = HB; this.HB = _at_HB;
this.types = types; this.types = _at_types;
this.unprocessed_ops = []; this.unprocessed_ops = [];
} }
@ -42,17 +42,17 @@ Engine = (function() {
*/ */
Engine.prototype.applyOpsCheckDouble = function(ops_json) { Engine.prototype.applyOpsCheckDouble = function(ops_json) {
var i, len, o, results; var o, _i, _len, _results;
results = []; _results = [];
for (i = 0, len = ops_json.length; i < len; i++) { for (_i = 0, _len = ops_json.length; _i < _len; _i++) {
o = ops_json[i]; o = ops_json[_i];
if (this.HB.getOperation(o.uid) == null) { if (this.HB.getOperation(o.uid) == null) {
results.push(this.applyOp(o)); _results.push(this.applyOp(o));
} else { } else {
results.push(void 0); _results.push(void 0);
} }
} }
return results; return _results;
}; };
Engine.prototype.applyOps = function(ops_json) { Engine.prototype.applyOps = function(ops_json) {
@ -60,15 +60,15 @@ Engine = (function() {
}; };
Engine.prototype.applyOp = function(op_json_array, fromHB) { Engine.prototype.applyOp = function(op_json_array, fromHB) {
var i, len, o, op_json; var o, op_json, _i, _len;
if (fromHB == null) { if (fromHB == null) {
fromHB = false; fromHB = false;
} }
if (op_json_array.constructor !== Array) { if (op_json_array.constructor !== Array) {
op_json_array = [op_json_array]; op_json_array = [op_json_array];
} }
for (i = 0, len = op_json_array.length; i < len; i++) { for (_i = 0, _len = op_json_array.length; _i < _len; _i++) {
op_json = op_json_array[i]; op_json = op_json_array[_i];
if (fromHB) { if (fromHB) {
op_json.fromHB = "true"; op_json.fromHB = "true";
} }
@ -90,13 +90,13 @@ Engine = (function() {
}; };
Engine.prototype.tryUnprocessed = function() { Engine.prototype.tryUnprocessed = function() {
var i, len, old_length, op, ref, unprocessed; var old_length, op, unprocessed, _i, _len, _ref;
while (true) { while (true) {
old_length = this.unprocessed_ops.length; old_length = this.unprocessed_ops.length;
unprocessed = []; unprocessed = [];
ref = this.unprocessed_ops; _ref = this.unprocessed_ops;
for (i = 0, len = ref.length; i < len; i++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
op = ref[i]; op = _ref[_i];
if (this.HB.getOperation(op) != null) { if (this.HB.getOperation(op) != null) {
} else if ((!this.HB.isExpectedOperation(op) && (op.fromHB == null)) || (!op.execute())) { } else if ((!this.HB.isExpectedOperation(op) && (op.fromHB == null)) || (!op.execute())) {

View File

@ -1,10 +1,10 @@
var HistoryBuffer, var HistoryBuffer,
bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
HistoryBuffer = (function() { HistoryBuffer = (function() {
function HistoryBuffer(user_id1) { function HistoryBuffer(_at_user_id) {
this.user_id = user_id1; this.user_id = _at_user_id;
this.emptyGarbage = bind(this.emptyGarbage, this); this.emptyGarbage = __bind(this.emptyGarbage, this);
this.operation_counter = {}; this.operation_counter = {};
this.buffer = {}; this.buffer = {};
this.change_listeners = []; this.change_listeners = [];
@ -43,10 +43,10 @@ HistoryBuffer = (function() {
}; };
HistoryBuffer.prototype.emptyGarbage = function() { HistoryBuffer.prototype.emptyGarbage = function() {
var i, len, o, ref; var o, _i, _len, _ref;
ref = this.garbage; _ref = this.garbage;
for (i = 0, len = ref.length; i < len; i++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
o = ref[i]; o = _ref[_i];
if (typeof o.cleanup === "function") { if (typeof o.cleanup === "function") {
o.cleanup(); o.cleanup();
} }
@ -64,18 +64,18 @@ HistoryBuffer = (function() {
}; };
HistoryBuffer.prototype.addToGarbageCollector = function() { HistoryBuffer.prototype.addToGarbageCollector = function() {
var i, len, o, results; var o, _i, _len, _results;
if (this.performGarbageCollection) { if (this.performGarbageCollection) {
results = []; _results = [];
for (i = 0, len = arguments.length; i < len; i++) { for (_i = 0, _len = arguments.length; _i < _len; _i++) {
o = arguments[i]; o = arguments[_i];
if (o != null) { if (o != null) {
results.push(this.garbage.push(o)); _results.push(this.garbage.push(o));
} else { } else {
results.push(void 0); _results.push(void 0);
} }
} }
return results; return _results;
} }
}; };
@ -92,8 +92,8 @@ HistoryBuffer = (function() {
return this.garbageCollectTimeoutId = void 0; return this.garbageCollectTimeoutId = void 0;
}; };
HistoryBuffer.prototype.setGarbageCollectTimeout = function(garbageCollectTimeout) { HistoryBuffer.prototype.setGarbageCollectTimeout = function(_at_garbageCollectTimeout) {
this.garbageCollectTimeout = garbageCollectTimeout; this.garbageCollectTimeout = _at_garbageCollectTimeout;
}; };
HistoryBuffer.prototype.getReservedUniqueIdentifier = function() { HistoryBuffer.prototype.getReservedUniqueIdentifier = function() {
@ -104,12 +104,12 @@ HistoryBuffer = (function() {
}; };
HistoryBuffer.prototype.getOperationCounter = function(user_id) { HistoryBuffer.prototype.getOperationCounter = function(user_id) {
var ctn, ref, res, user; var ctn, res, user, _ref;
if (user_id == null) { if (user_id == null) {
res = {}; res = {};
ref = this.operation_counter; _ref = this.operation_counter;
for (user in ref) { for (user in _ref) {
ctn = ref[user]; ctn = _ref[user];
res[user] = ctn; res[user] = ctn;
} }
return res; return res;
@ -119,16 +119,16 @@ HistoryBuffer = (function() {
}; };
HistoryBuffer.prototype.isExpectedOperation = function(o) { HistoryBuffer.prototype.isExpectedOperation = function(o) {
var base, name; var _base, _name;
if ((base = this.operation_counter)[name = o.uid.creator] == null) { if ((_base = this.operation_counter)[_name = o.uid.creator] == null) {
base[name] = 0; _base[_name] = 0;
} }
o.uid.op_number <= this.operation_counter[o.uid.creator]; o.uid.op_number <= this.operation_counter[o.uid.creator];
return true; return true;
}; };
HistoryBuffer.prototype._encode = function(state_vector) { HistoryBuffer.prototype._encode = function(state_vector) {
var json, o, o_json, o_next, o_number, o_prev, ref, u_name, unknown, user; var json, o, o_json, o_next, o_number, o_prev, u_name, unknown, user, _ref;
if (state_vector == null) { if (state_vector == null) {
state_vector = {}; state_vector = {};
} }
@ -139,9 +139,9 @@ HistoryBuffer = (function() {
} }
return (state_vector[user] == null) || state_vector[user] <= o_number; return (state_vector[user] == null) || state_vector[user] <= o_number;
}; };
ref = this.buffer; _ref = this.buffer;
for (u_name in ref) { for (u_name in _ref) {
user = ref[u_name]; user = _ref[u_name];
if (u_name === "_") { if (u_name === "_") {
continue; continue;
} }
@ -186,11 +186,11 @@ HistoryBuffer = (function() {
}; };
HistoryBuffer.prototype.getOperation = function(uid) { HistoryBuffer.prototype.getOperation = function(uid) {
var o, ref; var o, _ref;
if (uid.uid != null) { if (uid.uid != null) {
uid = uid.uid; uid = uid.uid;
} }
o = (ref = this.buffer[uid.creator]) != null ? ref[uid.op_number] : void 0; o = (_ref = this.buffer[uid.creator]) != null ? _ref[uid.op_number] : void 0;
if ((uid.sub != null) && (o != null)) { if ((uid.sub != null) && (o != null)) {
return o.retrieveSub(uid.sub); return o.retrieveSub(uid.sub);
} else { } else {
@ -214,8 +214,8 @@ HistoryBuffer = (function() {
}; };
HistoryBuffer.prototype.removeOperation = function(o) { HistoryBuffer.prototype.removeOperation = function(o) {
var ref; var _ref;
return (ref = this.buffer[o.uid.creator]) != null ? delete ref[o.uid.op_number] : void 0; return (_ref = this.buffer[o.uid.creator]) != null ? delete _ref[o.uid.op_number] : void 0;
}; };
HistoryBuffer.prototype.setInvokeSyncHandler = function(f) { HistoryBuffer.prototype.setInvokeSyncHandler = function(f) {
@ -225,23 +225,23 @@ HistoryBuffer = (function() {
HistoryBuffer.prototype.invokeSync = function() {}; HistoryBuffer.prototype.invokeSync = function() {};
HistoryBuffer.prototype.renewStateVector = function(state_vector) { HistoryBuffer.prototype.renewStateVector = function(state_vector) {
var results, state, user; var state, user, _results;
results = []; _results = [];
for (user in state_vector) { for (user in state_vector) {
state = state_vector[user]; state = state_vector[user];
if (((this.operation_counter[user] == null) || (this.operation_counter[user] < state_vector[user])) && (state_vector[user] != null)) { if (((this.operation_counter[user] == null) || (this.operation_counter[user] < state_vector[user])) && (state_vector[user] != null)) {
results.push(this.operation_counter[user] = state_vector[user]); _results.push(this.operation_counter[user] = state_vector[user]);
} else { } else {
results.push(void 0); _results.push(void 0);
} }
} }
return results; return _results;
}; };
HistoryBuffer.prototype.addToCounter = function(o) { HistoryBuffer.prototype.addToCounter = function(o) {
var base, name; var _base, _name;
if ((base = this.operation_counter)[name = o.uid.creator] == null) { if ((_base = this.operation_counter)[_name = o.uid.creator] == null) {
base[name] = 0; _base[_name] = 0;
} }
if (o.uid.creator !== this.getUserId()) { if (o.uid.creator !== this.getUserId()) {
if (o.uid.op_number === this.operation_counter[o.uid.creator]) { if (o.uid.op_number === this.operation_counter[o.uid.creator]) {

View File

@ -1,13 +1,13 @@
var YObject; var YObject;
YObject = (function() { YObject = (function() {
function YObject(_object) { function YObject(_at__object) {
var name, ref, val; var name, val, _ref;
this._object = _object != null ? _object : {}; this._object = _at__object != null ? _at__object : {};
if (this._object.constructor === Object) { if (this._object.constructor === Object) {
ref = this._object; _ref = this._object;
for (name in ref) { for (name in _ref) {
val = ref[name]; val = _ref[name];
if (val.constructor === Object) { if (val.constructor === Object) {
this._object[name] = new YObject(val); this._object[name] = new YObject(val);
} }
@ -20,12 +20,12 @@ YObject = (function() {
YObject.prototype._name = "Object"; YObject.prototype._name = "Object";
YObject.prototype._getModel = function(types, ops) { YObject.prototype._getModel = function(types, ops) {
var n, o, ref; var n, o, _ref;
if (this._model == null) { if (this._model == null) {
this._model = new ops.MapManager(this).execute(); this._model = new ops.MapManager(this).execute();
ref = this._object; _ref = this._object;
for (n in ref) { for (n in _ref) {
o = ref[n]; o = _ref[n];
this._model.val(n, o); this._model.val(n, o);
} }
} }
@ -33,8 +33,8 @@ YObject = (function() {
return this._model; return this._model;
}; };
YObject.prototype._setModel = function(_model) { YObject.prototype._setModel = function(_at__model) {
this._model = _model; this._model = _at__model;
return delete this._object; return delete this._object;
}; };
@ -49,7 +49,7 @@ YObject = (function() {
}; };
YObject.prototype.val = function(name, content) { YObject.prototype.val = function(name, content) {
var n, ref, res, v; var n, res, v, _ref;
if (this._model != null) { if (this._model != null) {
return this._model.val.apply(this._model, arguments); return this._model.val.apply(this._model, arguments);
} else { } else {
@ -59,9 +59,9 @@ YObject = (function() {
return this._object[name]; return this._object[name];
} else { } else {
res = {}; res = {};
ref = this._object; _ref = this._object;
for (n in ref) { for (n in _ref) {
v = ref[n]; v = _ref[n];
res[n] = v; res[n] = v;
} }
return res; return res;

View File

@ -1,6 +1,6 @@
var slice = [].slice, var __slice = [].slice,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty; __hasProp = {}.hasOwnProperty;
module.exports = function() { module.exports = function() {
var execution_listener, ops; var execution_listener, ops;
@ -51,19 +51,19 @@ module.exports = function() {
} else { } else {
callon = this; callon = this;
} }
return this.forwardEvent.apply(this, [callon].concat(slice.call(arguments))); return this.forwardEvent.apply(this, [callon].concat(__slice.call(arguments)));
}; };
Operation.prototype.forwardEvent = function() { Operation.prototype.forwardEvent = function() {
var args, f, j, len, op, ref, results; var args, f, op, _i, _len, _ref, _results;
op = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : []; op = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
ref = this.event_listeners; _ref = this.event_listeners;
results = []; _results = [];
for (j = 0, len = ref.length; j < len; j++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
f = ref[j]; f = _ref[_i];
results.push(f.call.apply(f, [op].concat(slice.call(args)))); _results.push(f.call.apply(f, [op].concat(__slice.call(args))));
} }
return results; return _results;
}; };
Operation.prototype.isDeleted = function() { Operation.prototype.isDeleted = function() {
@ -88,8 +88,8 @@ module.exports = function() {
return this.deleteAllObservers(); return this.deleteAllObservers();
}; };
Operation.prototype.setParent = function(parent1) { Operation.prototype.setParent = function(_at_parent) {
this.parent = parent1; this.parent = _at_parent;
}; };
Operation.prototype.getParent = function() { Operation.prototype.getParent = function() {
@ -112,26 +112,26 @@ module.exports = function() {
}; };
Operation.prototype.cloneUid = function() { Operation.prototype.cloneUid = function() {
var n, ref, uid, v; var n, uid, v, _ref;
uid = {}; uid = {};
ref = this.getUid(); _ref = this.getUid();
for (n in ref) { for (n in _ref) {
v = ref[n]; v = _ref[n];
uid[n] = v; uid[n] = v;
} }
return uid; return uid;
}; };
Operation.prototype.execute = function() { Operation.prototype.execute = function() {
var j, l, len; var l, _i, _len;
this.is_executed = true; this.is_executed = true;
if (this.uid == null) { if (this.uid == null) {
this.uid = this.HB.getNextOperationIdentifier(); this.uid = this.HB.getNextOperationIdentifier();
} }
if (this.uid.noOperation == null) { if (this.uid.noOperation == null) {
this.HB.addOperation(this); this.HB.addOperation(this);
for (j = 0, len = execution_listener.length; j < len; j++) { for (_i = 0, _len = execution_listener.length; _i < _len; _i++) {
l = execution_listener[j]; l = execution_listener[_i];
l(this._encode()); l(this._encode());
} }
} }
@ -168,12 +168,12 @@ module.exports = function() {
}; };
Operation.prototype.validateSavedOperations = function() { Operation.prototype.validateSavedOperations = function() {
var name, op, op_uid, ref, success, uninstantiated; var name, op, op_uid, success, uninstantiated, _ref;
uninstantiated = {}; uninstantiated = {};
success = this; success = this;
ref = this.unchecked; _ref = this.unchecked;
for (name in ref) { for (name in _ref) {
op_uid = ref[name]; op_uid = _ref[name];
op = this.HB.getOperation(op_uid); op = this.HB.getOperation(op_uid);
if (op) { if (op) {
this[name] = op; this[name] = op;
@ -190,15 +190,15 @@ module.exports = function() {
}; };
Operation.prototype.getCustomType = function() { Operation.prototype.getCustomType = function() {
var Type, j, len, ref, t; var Type, t, _i, _len, _ref;
if (this.custom_type == null) { if (this.custom_type == null) {
return this; return this;
} else { } else {
if (this.custom_type.constructor === String) { if (this.custom_type.constructor === String) {
Type = this.custom_types; Type = this.custom_types;
ref = this.custom_type.split("."); _ref = this.custom_type.split(".");
for (j = 0, len = ref.length; j < len; j++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
t = ref[j]; t = _ref[_i];
Type = Type[t]; Type = Type[t];
} }
this.custom_type = new Type(); this.custom_type = new Type();
@ -211,8 +211,8 @@ module.exports = function() {
return Operation; return Operation;
})(); })();
ops.Delete = (function(superClass) { ops.Delete = (function(_super) {
extend(Delete, superClass); __extends(Delete, _super);
function Delete(custom_type, uid, deletes) { function Delete(custom_type, uid, deletes) {
this.saveOperation('deletes', deletes); this.saveOperation('deletes', deletes);
@ -250,8 +250,8 @@ module.exports = function() {
uid = o['uid'], deletes_uid = o['deletes']; uid = o['uid'], deletes_uid = o['deletes'];
return new this(null, uid, deletes_uid); return new this(null, uid, deletes_uid);
}; };
ops.Insert = (function(superClass) { ops.Insert = (function(_super) {
extend(Insert, superClass); __extends(Insert, _super);
function Insert(custom_type, content, parent, uid, prev_cl, next_cl, origin) { function Insert(custom_type, content, parent, uid, prev_cl, next_cl, origin) {
if (content === void 0) { if (content === void 0) {
@ -282,30 +282,38 @@ module.exports = function() {
} }
}; };
Insert.prototype.getNext = function() { Insert.prototype.getNext = function(i) {
var n; var n;
n = this.next_cl; if (i == null) {
while (n.is_deleted && (n.next_cl != null)) { i = 1;
}
n = this;
while (i > 0 && n.is_deleted && (n.next_cl != null)) {
n = n.next_cl; n = n.next_cl;
if (!n.is_deleted) {
i--;
}
} }
return n; return n;
}; };
Insert.prototype.getPrev = function() { Insert.prototype.getPrev = function(i) {
var n; var n;
n((function(_this) { if (i == null) {
return function() { i = 1;
return _this.prev_cl; }
}; n = this;
})(this)); while (i > 0 && n.is_deleted && (n.prev_cl != null)) {
while (n.is_deleted && (n.prev_cl != null)) {
n = n.prev_cl; n = n.prev_cl;
if (!n.is_deleted) {
i--;
}
} }
return n; return n;
}; };
Insert.prototype.applyDelete = function(o) { Insert.prototype.applyDelete = function(o) {
var callLater, garbagecollect, ref; var callLater, garbagecollect, _ref;
if (this.deleted_by == null) { if (this.deleted_by == null) {
this.deleted_by = []; this.deleted_by = [];
} }
@ -324,17 +332,17 @@ module.exports = function() {
if (callLater) { if (callLater) {
this.parent.callOperationSpecificDeleteEvents(this, o); this.parent.callOperationSpecificDeleteEvents(this, o);
} }
if ((ref = this.prev_cl) != null ? ref.isDeleted() : void 0) { if ((_ref = this.prev_cl) != null ? _ref.isDeleted() : void 0) {
return this.prev_cl.applyDelete(); return this.prev_cl.applyDelete();
} }
}; };
Insert.prototype.cleanup = function() { Insert.prototype.cleanup = function() {
var d, j, len, o, ref; var d, o, _i, _len, _ref;
if (this.next_cl.isDeleted()) { if (this.next_cl.isDeleted()) {
ref = this.deleted_by; _ref = this.deleted_by;
for (j = 0, len = ref.length; j < len; j++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
d = ref[j]; d = _ref[_i];
d.cleanup(); d.cleanup();
} }
o = this.next_cl; o = this.next_cl;
@ -372,14 +380,14 @@ module.exports = function() {
}; };
Insert.prototype.execute = function() { Insert.prototype.execute = function() {
var base, distance_to_origin, i, o; var distance_to_origin, i, o, _base;
if (!this.validateSavedOperations()) { if (!this.validateSavedOperations()) {
return false; return false;
} else { } else {
if (this.content instanceof ops.Operation) { if (this.content instanceof ops.Operation) {
this.content.insert_parent = this; this.content.insert_parent = this;
if ((base = this.content).referenced_by == null) { if ((_base = this.content).referenced_by == null) {
base.referenced_by = 0; _base.referenced_by = 0;
} }
this.content.referenced_by++; this.content.referenced_by++;
} }
@ -453,7 +461,7 @@ module.exports = function() {
}; };
Insert.prototype._encode = function(json) { Insert.prototype._encode = function(json) {
var ref; var _ref;
if (json == null) { if (json == null) {
json = {}; json = {};
} }
@ -465,7 +473,7 @@ module.exports = function() {
} else if (this.origin !== this.prev_cl) { } else if (this.origin !== this.prev_cl) {
json.origin = this.origin.getUid(); json.origin = this.origin.getUid();
} }
if (((ref = this.content) != null ? ref.getUid : void 0) != null) { if (((_ref = this.content) != null ? _ref.getUid : void 0) != null) {
json['content'] = this.content.getUid(); json['content'] = this.content.getUid();
} else { } else {
json['content'] = JSON.stringify(this.content); json['content'] = JSON.stringify(this.content);
@ -484,8 +492,8 @@ module.exports = function() {
} }
return new this(null, content, parent, uid, prev, next, origin); return new this(null, content, parent, uid, prev, next, origin);
}; };
ops.Delimiter = (function(superClass) { ops.Delimiter = (function(_super) {
extend(Delimiter, superClass); __extends(Delimiter, _super);
function Delimiter(prev_cl, next_cl, origin) { function Delimiter(prev_cl, next_cl, origin) {
this.saveOperation('prev_cl', prev_cl); this.saveOperation('prev_cl', prev_cl);
@ -514,10 +522,10 @@ module.exports = function() {
}; };
Delimiter.prototype.execute = function() { Delimiter.prototype.execute = function() {
var ref, ref1; var _ref, _ref1;
if (((ref = this.unchecked) != null ? ref['next_cl'] : void 0) != null) { if (((_ref = this.unchecked) != null ? _ref['next_cl'] : void 0) != null) {
return Delimiter.__super__.execute.apply(this, arguments); return Delimiter.__super__.execute.apply(this, arguments);
} else if ((ref1 = this.unchecked) != null ? ref1['prev_cl'] : void 0) { } else if ((_ref1 = this.unchecked) != null ? _ref1['prev_cl'] : void 0) {
if (this.validateSavedOperations()) { if (this.validateSavedOperations()) {
if (this.prev_cl.next_cl != null) { if (this.prev_cl.next_cl != null) {
throw new Error("Probably duplicated operations"); throw new Error("Probably duplicated operations");
@ -537,12 +545,12 @@ module.exports = function() {
}; };
Delimiter.prototype._encode = function() { Delimiter.prototype._encode = function() {
var ref, ref1; var _ref, _ref1;
return { return {
'type': this.type, 'type': this.type,
'uid': this.getUid(), 'uid': this.getUid(),
'prev': (ref = this.prev_cl) != null ? ref.getUid() : void 0, 'prev': (_ref = this.prev_cl) != null ? _ref.getUid() : void 0,
'next': (ref1 = this.next_cl) != null ? ref1.getUid() : void 0 'next': (_ref1 = this.next_cl) != null ? _ref1.getUid() : void 0
}; };
}; };

View File

@ -1,6 +1,6 @@
var basic_ops_uninitialized, var basic_ops_uninitialized,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty; __hasProp = {}.hasOwnProperty;
basic_ops_uninitialized = require("./Basic"); basic_ops_uninitialized = require("./Basic");
@ -8,8 +8,8 @@ module.exports = function() {
var basic_ops, ops; var basic_ops, ops;
basic_ops = basic_ops_uninitialized(); basic_ops = basic_ops_uninitialized();
ops = basic_ops.operations; ops = basic_ops.operations;
ops.MapManager = (function(superClass) { ops.MapManager = (function(_super) {
extend(MapManager, superClass); __extends(MapManager, _super);
function MapManager(custom_type, uid) { function MapManager(custom_type, uid) {
this._map = {}; this._map = {};
@ -19,10 +19,10 @@ module.exports = function() {
MapManager.prototype.type = "MapManager"; MapManager.prototype.type = "MapManager";
MapManager.prototype.applyDelete = function() { MapManager.prototype.applyDelete = function() {
var name, p, ref; var name, p, _ref;
ref = this._map; _ref = this._map;
for (name in ref) { for (name in _ref) {
p = ref[name]; p = _ref[name];
p.applyDelete(); p.applyDelete();
} }
return MapManager.__super__.applyDelete.call(this); return MapManager.__super__.applyDelete.call(this);
@ -33,17 +33,17 @@ module.exports = function() {
}; };
MapManager.prototype.map = function(f) { MapManager.prototype.map = function(f) {
var n, ref, v; var n, v, _ref;
ref = this._map; _ref = this._map;
for (n in ref) { for (n in _ref) {
v = ref[n]; v = _ref[n];
f(n, v); f(n, v);
} }
return void 0; return void 0;
}; };
MapManager.prototype.val = function(name, content) { MapManager.prototype.val = function(name, content) {
var o, prop, ref, rep, res, result; var o, prop, rep, res, result, _ref;
if (arguments.length > 1) { if (arguments.length > 1) {
if ((content != null) && (content._getModel != null)) { if ((content != null) && (content._getModel != null)) {
rep = content._getModel(this.custom_types, this.operations); rep = content._getModel(this.custom_types, this.operations);
@ -66,9 +66,9 @@ module.exports = function() {
} }
} else { } else {
result = {}; result = {};
ref = this._map; _ref = this._map;
for (name in ref) { for (name in _ref) {
o = ref[name]; o = _ref[name];
if (!o.isContentDeleted()) { if (!o.isContentDeleted()) {
result[name] = o.val(); result[name] = o.val();
} }
@ -78,9 +78,9 @@ module.exports = function() {
}; };
MapManager.prototype["delete"] = function(name) { MapManager.prototype["delete"] = function(name) {
var ref; var _ref;
if ((ref = this._map[name]) != null) { if ((_ref = this._map[name]) != null) {
ref.deleteContent(); _ref.deleteContent();
} }
return this; return this;
}; };
@ -113,8 +113,8 @@ module.exports = function() {
uid = json['uid'], custom_type = json['custom_type']; uid = json['uid'], custom_type = json['custom_type'];
return new this(custom_type, uid); return new this(custom_type, uid);
}; };
ops.ListManager = (function(superClass) { ops.ListManager = (function(_super) {
extend(ListManager, superClass); __extends(ListManager, _super);
function ListManager(custom_type, uid) { function ListManager(custom_type, uid) {
this.beginning = new ops.Delimiter(void 0, void 0); this.beginning = new ops.Delimiter(void 0, void 0);
@ -142,25 +142,25 @@ module.exports = function() {
}; };
ListManager.prototype.toJson = function(transform_to_value) { ListManager.prototype.toJson = function(transform_to_value) {
var i, j, len, o, results, val; var i, o, val, _i, _len, _results;
if (transform_to_value == null) { if (transform_to_value == null) {
transform_to_value = false; transform_to_value = false;
} }
val = this.val(); val = this.val();
results = []; _results = [];
for (o = j = 0, len = val.length; j < len; o = ++j) { for (o = _i = 0, _len = val.length; _i < _len; o = ++_i) {
i = val[o]; i = val[o];
if (o instanceof ops.Object) { if (o instanceof ops.Object) {
results.push(o.toJson(transform_to_value)); _results.push(o.toJson(transform_to_value));
} else if (o instanceof ops.ListManager) { } else if (o instanceof ops.ListManager) {
results.push(o.toJson(transform_to_value)); _results.push(o.toJson(transform_to_value));
} else if (transform_to_value && o instanceof ops.Operation) { } else if (transform_to_value && o instanceof ops.Operation) {
results.push(o.val()); _results.push(o.val());
} else { } else {
results.push(o); _results.push(o);
} }
} }
return results; return _results;
}; };
ListManager.prototype.execute = function() { ListManager.prototype.execute = function() {
@ -274,7 +274,7 @@ module.exports = function() {
}; };
ListManager.prototype.insertAfter = function(left, contents) { ListManager.prototype.insertAfter = function(left, contents) {
var c, j, len, right, tmp; var c, right, tmp, _i, _len;
right = left.next_cl; right = left.next_cl;
while (right.isDeleted()) { while (right.isDeleted()) {
right = right.next_cl; right = right.next_cl;
@ -283,8 +283,8 @@ module.exports = function() {
if (contents instanceof ops.Operation) { if (contents instanceof ops.Operation) {
(new ops.Insert(null, content, void 0, void 0, left, right)).execute(); (new ops.Insert(null, content, void 0, void 0, left, right)).execute();
} else { } else {
for (j = 0, len = contents.length; j < len; j++) { for (_i = 0, _len = contents.length; _i < _len; _i++) {
c = contents[j]; c = contents[_i];
if ((c != null) && (c._name != null) && (c._getModel != null)) { if ((c != null) && (c._name != null) && (c._getModel != null)) {
c = c._getModel(this.custom_types, this.operations); c = c._getModel(this.custom_types, this.operations);
} }
@ -302,13 +302,13 @@ module.exports = function() {
}; };
ListManager.prototype["delete"] = function(position, length) { ListManager.prototype["delete"] = function(position, length) {
var d, delete_ops, i, j, o, ref; var d, delete_ops, i, o, _i;
if (length == null) { if (length == null) {
length = 1; length = 1;
} }
o = this.getOperationByPosition(position + 1); o = this.getOperationByPosition(position + 1);
delete_ops = []; delete_ops = [];
for (i = j = 0, ref = length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { for (i = _i = 0; 0 <= length ? _i < length : _i > length; i = 0 <= length ? ++_i : --_i) {
if (o instanceof ops.Delimiter) { if (o instanceof ops.Delimiter) {
break; break;
} }
@ -363,11 +363,11 @@ module.exports = function() {
uid = json['uid'], custom_type = json['custom_type']; uid = json['uid'], custom_type = json['custom_type'];
return new this(custom_type, uid); return new this(custom_type, uid);
}; };
ops.Composition = (function(superClass) { ops.Composition = (function(_super) {
extend(Composition, superClass); __extends(Composition, _super);
function Composition(custom_type, composition_value1, uid, composition_ref) { function Composition(custom_type, _at_composition_value, uid, composition_ref) {
this.composition_value = composition_value1; this.composition_value = _at_composition_value;
Composition.__super__.constructor.call(this, custom_type, uid); Composition.__super__.constructor.call(this, custom_type, uid);
if (composition_ref) { if (composition_ref) {
this.saveOperation('composition_ref', composition_ref); this.saveOperation('composition_ref', composition_ref);
@ -431,12 +431,12 @@ module.exports = function() {
uid = json['uid'], custom_type = json['custom_type'], composition_value = json['composition_value'], composition_ref = json['composition_ref']; uid = json['uid'], custom_type = json['custom_type'], composition_value = json['composition_value'], composition_ref = json['composition_ref'];
return new this(custom_type, JSON.parse(composition_value), uid, composition_ref); return new this(custom_type, JSON.parse(composition_value), uid, composition_ref);
}; };
ops.ReplaceManager = (function(superClass) { ops.ReplaceManager = (function(_super) {
extend(ReplaceManager, superClass); __extends(ReplaceManager, _super);
function ReplaceManager(custom_type, event_properties1, event_this1, uid) { function ReplaceManager(custom_type, _at_event_properties, _at_event_this, uid) {
this.event_properties = event_properties1; this.event_properties = _at_event_properties;
this.event_this = event_this1; this.event_this = _at_event_this;
if (this.event_properties['object'] == null) { if (this.event_properties['object'] == null) {
this.event_properties['object'] = this.event_this.getCustomType(); this.event_properties['object'] = this.event_this.getCustomType();
} }
@ -446,13 +446,13 @@ module.exports = function() {
ReplaceManager.prototype.type = "ReplaceManager"; ReplaceManager.prototype.type = "ReplaceManager";
ReplaceManager.prototype.callEventDecorator = function(events) { ReplaceManager.prototype.callEventDecorator = function(events) {
var event, j, len, name, prop, ref; var event, name, prop, _i, _len, _ref;
if (!this.isDeleted()) { if (!this.isDeleted()) {
for (j = 0, len = events.length; j < len; j++) { for (_i = 0, _len = events.length; _i < _len; _i++) {
event = events[j]; event = events[_i];
ref = this.event_properties; _ref = this.event_properties;
for (name in ref) { for (name in _ref) {
prop = ref[name]; prop = _ref[name];
event[name] = prop; event[name] = prop;
} }
} }

View File

@ -3,42 +3,42 @@ var Y, bindToChildren;
Y = require('./y'); Y = require('./y');
bindToChildren = function(that) { bindToChildren = function(that) {
var attr, i, j, ref; var attr, i, _i, _ref;
for (i = j = 0, ref = that.children.length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { for (i = _i = 0, _ref = that.children.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
attr = that.children.item(i); attr = that.children.item(i);
if (attr.name != null) { if (attr.name != null) {
attr.val = that.val.val(attr.name); attr.val = that.val.val(attr.name);
} }
} }
return that.val.observe(function(events) { return that.val.observe(function(events) {
var event, k, len, newVal, results; var event, newVal, _j, _len, _results;
results = []; _results = [];
for (k = 0, len = events.length; k < len; k++) { for (_j = 0, _len = events.length; _j < _len; _j++) {
event = events[k]; event = events[_j];
if (event.name != null) { if (event.name != null) {
results.push((function() { _results.push((function() {
var l, ref1, results1; var _k, _ref1, _results1;
results1 = []; _results1 = [];
for (i = l = 0, ref1 = that.children.length; 0 <= ref1 ? l < ref1 : l > ref1; i = 0 <= ref1 ? ++l : --l) { for (i = _k = 0, _ref1 = that.children.length; 0 <= _ref1 ? _k < _ref1 : _k > _ref1; i = 0 <= _ref1 ? ++_k : --_k) {
attr = that.children.item(i); attr = that.children.item(i);
if ((attr.name != null) && attr.name === event.name) { if ((attr.name != null) && attr.name === event.name) {
newVal = that.val.val(attr.name); newVal = that.val.val(attr.name);
if (attr.val !== newVal) { if (attr.val !== newVal) {
results1.push(attr.val = newVal); _results1.push(attr.val = newVal);
} else { } else {
results1.push(void 0); _results1.push(void 0);
} }
} else { } else {
results1.push(void 0); _results1.push(void 0);
} }
} }
return results1; return _results1;
})()); })());
} else { } else {
results.push(void 0); _results.push(void 0);
} }
} }
return results; return _results;
}); });
}; };
@ -78,13 +78,13 @@ Polymer("y-property", {
} }
}, },
valChanged: function() { valChanged: function() {
var ref; var _ref;
if ((this.val != null) && (this.name != null)) { if ((this.val != null) && (this.name != null)) {
if (this.val.constructor === Object) { if (this.val.constructor === Object) {
return this.val = this.parentElement.val.val(this.name, this.val).val(this.name); return this.val = this.parentElement.val.val(this.name, this.val).val(this.name);
} else if (this.val.type === "Object") { } else if (this.val.type === "Object") {
return bindToChildren(this); return bindToChildren(this);
} else if ((((ref = this.parentElement.val) != null ? ref.val : void 0) != null) && this.val !== this.parentElement.val.val(this.name)) { } else if ((((_ref = this.parentElement.val) != null ? _ref.val : void 0) != null) && this.val !== this.parentElement.val.val(this.name)) {
return this.parentElement.val.val(this.name, this.val); return this.parentElement.val.val(this.name, this.val);
} }
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
y.js

File diff suppressed because one or more lines are too long