addChecksumToMarkup: function(markup) { var checksum = adler32(markup); return markup.replace( '>', ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '">' ); },
it('doesn\'t barf on large inputs', function() { var str = ''; for (var i = 0; i < 100000; i++) { str += 'This will be repeated to be very large indeed. '; } expect(adler32(str)).toBe(692898118); });
canReuseMarkup: function(markup, element) { var existingChecksum = element.getAttribute( ReactMarkupChecksum.CHECKSUM_ATTR_NAME ); existingChecksum = existingChecksum && parseInt(existingChecksum, 10); var markupChecksum = adler32(markup); return markupChecksum === existingChecksum; },
addChecksumToMarkup: function(markup) { var checksum = adler32(markup); // Add checksum (handle both parent tags and self-closing tags) return markup.replace( /\/?>/, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&' ); },
addChecksumToMarkup: function(markup) { var checksum = adler32(markup); // Add checksum (handle both parent tags, comments and self-closing tags) if (COMMENT_START.test(markup)) { return markup; } else { return markup.replace( TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&', ); } },
it('doesn\'t barf on international inputs', function() { var str = 'Linux 是一個真棒操作系統!'; expect(adler32(str)).toBe(-1183804097); });
it('is case sensitive', function() { expect(adler32('a')).not.toBe(adler32('A')); });
it('generates consistent checksums', function() { expect(adler32('linux')).toBe(adler32('linux')); });
it('generates differing checksums', function() { expect(adler32('foo')).not.toBe(adler32('bar')); });
var adler32=require("adler32"),ReactMarkupChecksum={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var a=adler32(e);return e.replace(">"," "+ReactMarkupChecksum.CHECKSUM_ATTR_NAME+'="'+a+'">')},canReuseMarkup:function(e,a){var r=a.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);r=r&&parseInt(r,10);var u=adler32(e);return u===r}};module.exports=ReactMarkupChecksum;