Skip to content

Commit fde0522

Browse files
committed
Fixed bug with scoped name functions because webpack remove them when uglify
1 parent c51395c commit fde0522

File tree

10 files changed

+22
-14
lines changed

10 files changed

+22
-14
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dop",
3-
"version": "0.25.1",
3+
"version": "0.25.2",
44
"main": "./dist/dop.nodejs.js",
55
"browser": "./dist/dop.js",
66
"unpkg": "./dist/dop.min.js",

src/api/computed.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11

22
dop.computed = function(callback) {
33
dop.util.invariant(isFunction(callback), 'dop.computed needs a function as first parameter');
4-
return function $DOP_COMPUTED_FUNCTION(object, property, shallWeSet, oldValue) {
4+
var f = function (object, property, shallWeSet, oldValue) {
55
return dop.core.createComputed(object, property, callback, shallWeSet, oldValue);
6-
};
6+
}
7+
f._name = dop.cons.COMPUTED_FUNCTION;
8+
return f;
79
};

src/api/isBroadcastFunction.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11

22
dop.isBroadcastFunction = function(fun) {
3-
return (isFunction(fun) && fun.name===dop.cons.BROADCAST_FUNCTION);
3+
return (isFunction(fun) && fun._name===dop.cons.BROADCAST_FUNCTION);
44
};

src/api/isRemoteFunction.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11

22
dop.isRemoteFunction = function(fun) {
3-
return (isFunction(fun) && fun.name===dop.cons.REMOTE_FUNCTION);
3+
return (isFunction(fun) && fun._name===dop.cons.REMOTE_FUNCTION);
44
};

src/api/setBroadcastFunction.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ dop.setBroadcastFunction = function (object, namefunction) {
44
var path = dop.getObjectPath(object),
55
object_id = path.shift();
66
path.push(namefunction);
7-
dop.getObjectTarget(object)[namefunction] = function $DOP_BROADCAST_FUNCTION() {
7+
dop.getObjectTarget(object)[namefunction] = function() {
88
return dop.protocol.broadcast(object_id, path, arguments);
99
}
10+
dop.getObjectTarget(object)[namefunction]._name = dop.cons.BROADCAST_FUNCTION;
1011
};

src/core/mutators/set.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ dop.core.set = function(object, property, value) {
2222
if (dop.isObjectRegistrable(value) && !(dop.isRegistered(value) && dop.getObjectParent(value) === objectProxy))
2323
objectTarget[property] = dop.core.configureObject(value, property, objectProxy);
2424
// computed value
25-
else if (isFunction(value) && value.name==dop.cons.COMPUTED_FUNCTION)
25+
else if (isFunction(value) && value._name==dop.cons.COMPUTED_FUNCTION)
2626
objectTarget[property] = value(objectTarget, property, false, oldValue);
2727
// other
2828
else

src/core/objects/configureObject.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,12 @@ dop.core.configureObject = function(object, propertyParent, parent) {
6666
value = object_target[property];
6767
is_function = isFunction(value);
6868
// remote function
69-
if (is_function && value.name==dop.core.createRemoteFunction.name) {
69+
if (is_function && value._name==dop.cons.REMOTE_FUNCTION_UNSETUP) {
7070
path = dop.getObjectPath(object);
7171
object_target[property] = value(path[0], path.slice(1).concat(property));
7272
}
7373
// storing computed value function
74-
else if (is_function && value.name==dop.cons.COMPUTED_FUNCTION)
74+
else if (is_function && value._name==dop.cons.COMPUTED_FUNCTION)
7575
object_target[property] = value(object_proxy, property, false, undefined);
7676
// object or array
7777
else if (dop.isObjectRegistrable(value))

src/core/objects/setPatch.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dop.core.setPatch = function(object, patch, mutator) {
1111

1212

1313
dop.core.setPatchFunctionMutator = function(destiny, prop, value, typeofValue, path){
14-
if (isFunction(value) && value.name==dop.core.createRemoteFunction.name)
14+
if (isFunction(value) && value._name==dop.cons.REMOTE_FUNCTION_UNSETUP)
1515
dop.set(destiny, prop, value(dop.getObjectId(destiny), path.slice(0)));
1616
else
1717
return dop.core.setPatchMutator(destiny, prop, value, typeofValue, path);
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11

2-
dop.core.createRemoteFunction = function $DOP_REMOTE_FUNCTION_UNSETUP(node) {
3-
return function $DOP_REMOTE_FUNCTION_UNSETUP(object_id, path) {
2+
dop.core.createRemoteFunction = function(node) {
3+
var f = function (object_id, path) {
44
// // http://jsperf.com/dynamic-name-of-functions
55
// return new Function(
66
// "var a=arguments;return function " + path[path.length-1] + "(){return a[0](a[1], a[2], a[3], arguments)}"
77
// )(dop.protocol.call, node, object_id, path)
8-
return function $DOP_REMOTE_FUNCTION() {
8+
var f2 = function $DOP_REMOTE_FUNCTION() {
99
return dop.protocol.call(node, object_id, path, arguments);
1010
}
11+
f2._name = dop.cons.REMOTE_FUNCTION
12+
return f2;
1113
}
14+
f._name = dop.cons.REMOTE_FUNCTION_UNSETUP;
15+
return f;
1216
};

src/dop.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ var dop = {
4949
SEND: '~SEND',
5050
DISCONNECT: '~DISCONNECT',
5151
REMOTE_FUNCTION: '$DOP_REMOTE_FUNCTION',
52+
REMOTE_FUNCTION_UNSETUP: '$DOP_REMOTE_FUNCTION_UNSETUP',
5253
BROADCAST_FUNCTION: '$DOP_BROADCAST_FUNCTION',
53-
COMPUTED_FUNCTION: '$DOP_COMPUTED_FUNCTION'
54+
COMPUTED_FUNCTION: '$DOP_COMPUTED_FUNCTION',
5455
}
5556

5657
};

0 commit comments

Comments
 (0)