Skip to content

Commit d01471d

Browse files
committed
Not using multiEncode composer anymore
1 parent 78501fd commit d01471d

File tree

8 files changed

+38
-52
lines changed

8 files changed

+38
-52
lines changed

src/api/encode.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11

2-
dop.encode = (function(data, encoder) {
3-
var encoderCache
4-
return function(data, encoder) {
5-
if (typeof encoder != 'function') {
6-
if (encoderCache === undefined)
7-
encoderCache = dop.core.multiEncode(dop.core.encodeSpecial, dop.core.encodeProtocol, dop.core.encodeUtil);
8-
encoder = encoderCache;
9-
}
10-
return JSON.stringify(data, encoder);
11-
}
12-
})();
2+
dop.encode = function(data, encoder) {
3+
if (typeof encoder != 'function')
4+
encoder = dop.core.encode;
5+
return JSON.stringify(data, encoder);
6+
};

src/core/protocol/decode.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ dop.core.decode = function(property, value, node, undefineds) {
99
return dop.core.createRemoteFunction(node);
1010

1111
if (value == '~U' && isObject(undefineds)) {
12-
this[property] = undefined;
13-
// undefineds.push([this, property]); // http://stackoverflow.com/questions/17648150/how-does-json-parse-manage-undefined
14-
// return undefined;
12+
undefineds.push([this, property]); // http://stackoverflow.com/questions/17648150/how-does-json-parse-manage-undefined
13+
return undefined;
1514
}
1615

1716
if (value === '~I')
Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
11

2-
dop.core.encodeUtil = function(property, value) {
2+
dop.core.encode = function(property, value) {
33

44
var tof = typeof value;
55

6-
if (value === Infinity)
7-
return '~I';
6+
if (tof == 'undefined') // http://stackoverflow.com/questions/17648150/how-does-json-parse-manage-undefined
7+
return '~U';
88

9-
if (value === -Infinity)
10-
return '~i';
9+
if (tof == 'string' && value[0] == '~')
10+
return '~'+value;
1111

1212
if (tof == 'number' && isNaN(value))
1313
return '~N';
1414

1515
if (tof == 'object' && value instanceof RegExp)
1616
return '~R' + value.toString();
1717

18+
if (value === Infinity)
19+
return '~I';
20+
21+
if (value === -Infinity)
22+
return '~i';
23+
1824
return value;
1925
};
2026

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
dop.core.encodeFunction = function(property, value) {
3+
return (isFunction(value)) ? '~F' : dop.core.encode(property, value);
4+
};

src/core/protocol/encodeProtocol.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/core/protocol/encodeSpecial.js

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/core/protocol/multiEncode.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11

2-
dop.core.multiEncode = function() {
3-
var encoders = arguments,
4-
length = encoders.length, v;
5-
return function recursion(property, value, index) {
6-
if (index>=length)
7-
return value;
8-
else if (index === undefined) {
9-
v = value;
10-
index = 0;
11-
}
12-
v = encoders[index](property, value);
13-
return (v!==value) ? v : recursion(property, value, index+1);
14-
}
15-
};
2+
// dop.core.multiEncode = function() {
3+
// var encoders = arguments,
4+
// length = encoders.length, v;
5+
// return function recursion(property, value, index) {
6+
// if (index>=length)
7+
// return value;
8+
// else if (index === undefined) {
9+
// v = value;
10+
// index = 0;
11+
// }
12+
// v = encoders[index](property, value);
13+
// return (v!==value) ? v : recursion(property, value, index+1);
14+
// }
15+
// };

test/encode_decode.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ test('Multiple data', function(t) {
2727
var encoded = dop.encode(data);
2828
var decoded = dop.decode(encoded);
2929
t.deepEqual(decoded, data, 'deepEqual');
30-
data.NaN = NaN;
30+
// data.NaN = NaN;
3131
data.function = function(){};
32-
decoded = dop.decode(dop.encode(data));
32+
decoded = dop.decode(dop.encode(data, dop.core.encodeFunction));
3333
t.equal(JSON.stringify(decoded), JSON.stringify(data), 'Stringify');
3434
t.equal(typeof decoded.function, 'function', 'Has function');
3535
// console.log( decoded);

0 commit comments

Comments
 (0)