diff --git a/test/unit/serialize.js b/test/unit/serialize.js index e7b2acc..1b10700 100644 --- a/test/unit/serialize.js +++ b/test/unit/serialize.js @@ -643,6 +643,29 @@ describe('serialize( obj )', function () { strictEqual(deserialized(), ''); }); + it('should encode mixed-case and delimiter variants in function bodies', function () { + // These escapes create actual LF, CR, and FF characters in each + // returned value. Serialization must keep the source safe and + // preserve those values after deserialization. + var payloads = [ + '', + '', + '', + '', + '' + ]; + + payloads.forEach(function (payload) { + var fn = new Function('return ' + JSON.stringify(payload)); + var serialized = serialize(fn); + + strictEqual(CLOSES_SCRIPT.test(serialized), false); + + var deserialized; eval('deserialized = ' + serialized); + strictEqual(deserialized(), payload); + }); + }); + // A `