react-source 0.5.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/build/JSXTransformer.js +152 -2607
- data/build/react-with-addons.js +692 -519
- data/build/react-with-addons.min.js +5 -5
- data/build/react.js +641 -466
- data/build/react.min.js +4 -4
- metadata +2 -2
data/build/JSXTransformer.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* JSXTransformer v0.
|
|
2
|
+
* JSXTransformer v0.8.0
|
|
3
3
|
*/
|
|
4
|
-
!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSXTransformer=e():"undefined"!=typeof global?global.JSXTransformer=e():"undefined"!=typeof self&&(self.JSXTransformer=e())}(function(){var define,module,exports;
|
|
5
|
-
return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
|
4
|
+
!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSXTransformer=e():"undefined"!=typeof global?global.JSXTransformer=e():"undefined"!=typeof self&&(self.JSXTransformer=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
//
|
|
@@ -431,2384 +430,7 @@ exports.extname = function(path) {
|
|
|
431
430
|
return splitPath(path)[3];
|
|
432
431
|
};
|
|
433
432
|
|
|
434
|
-
},{"__browserify_process":
|
|
435
|
-
var Buffer=require("__browserify_Buffer").Buffer;// Copyright Joyent, Inc. and other Node contributors.
|
|
436
|
-
//
|
|
437
|
-
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
438
|
-
// copy of this software and associated documentation files (the
|
|
439
|
-
// "Software"), to deal in the Software without restriction, including
|
|
440
|
-
// without limitation the rights to use, copy, modify, merge, publish,
|
|
441
|
-
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
442
|
-
// persons to whom the Software is furnished to do so, subject to the
|
|
443
|
-
// following conditions:
|
|
444
|
-
//
|
|
445
|
-
// The above copyright notice and this permission notice shall be included
|
|
446
|
-
// in all copies or substantial portions of the Software.
|
|
447
|
-
//
|
|
448
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
449
|
-
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
450
|
-
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
451
|
-
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
452
|
-
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
453
|
-
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
454
|
-
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
455
|
-
|
|
456
|
-
var shims = require('_shims');
|
|
457
|
-
|
|
458
|
-
var formatRegExp = /%[sdj%]/g;
|
|
459
|
-
exports.format = function(f) {
|
|
460
|
-
if (!isString(f)) {
|
|
461
|
-
var objects = [];
|
|
462
|
-
for (var i = 0; i < arguments.length; i++) {
|
|
463
|
-
objects.push(inspect(arguments[i]));
|
|
464
|
-
}
|
|
465
|
-
return objects.join(' ');
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
var i = 1;
|
|
469
|
-
var args = arguments;
|
|
470
|
-
var len = args.length;
|
|
471
|
-
var str = String(f).replace(formatRegExp, function(x) {
|
|
472
|
-
if (x === '%%') return '%';
|
|
473
|
-
if (i >= len) return x;
|
|
474
|
-
switch (x) {
|
|
475
|
-
case '%s': return String(args[i++]);
|
|
476
|
-
case '%d': return Number(args[i++]);
|
|
477
|
-
case '%j':
|
|
478
|
-
try {
|
|
479
|
-
return JSON.stringify(args[i++]);
|
|
480
|
-
} catch (_) {
|
|
481
|
-
return '[Circular]';
|
|
482
|
-
}
|
|
483
|
-
default:
|
|
484
|
-
return x;
|
|
485
|
-
}
|
|
486
|
-
});
|
|
487
|
-
for (var x = args[i]; i < len; x = args[++i]) {
|
|
488
|
-
if (isNull(x) || !isObject(x)) {
|
|
489
|
-
str += ' ' + x;
|
|
490
|
-
} else {
|
|
491
|
-
str += ' ' + inspect(x);
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
return str;
|
|
495
|
-
};
|
|
496
|
-
|
|
497
|
-
/**
|
|
498
|
-
* Echos the value of a value. Trys to print the value out
|
|
499
|
-
* in the best way possible given the different types.
|
|
500
|
-
*
|
|
501
|
-
* @param {Object} obj The object to print out.
|
|
502
|
-
* @param {Object} opts Optional options object that alters the output.
|
|
503
|
-
*/
|
|
504
|
-
/* legacy: obj, showHidden, depth, colors*/
|
|
505
|
-
function inspect(obj, opts) {
|
|
506
|
-
// default options
|
|
507
|
-
var ctx = {
|
|
508
|
-
seen: [],
|
|
509
|
-
stylize: stylizeNoColor
|
|
510
|
-
};
|
|
511
|
-
// legacy...
|
|
512
|
-
if (arguments.length >= 3) ctx.depth = arguments[2];
|
|
513
|
-
if (arguments.length >= 4) ctx.colors = arguments[3];
|
|
514
|
-
if (isBoolean(opts)) {
|
|
515
|
-
// legacy...
|
|
516
|
-
ctx.showHidden = opts;
|
|
517
|
-
} else if (opts) {
|
|
518
|
-
// got an "options" object
|
|
519
|
-
exports._extend(ctx, opts);
|
|
520
|
-
}
|
|
521
|
-
// set default options
|
|
522
|
-
if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
|
|
523
|
-
if (isUndefined(ctx.depth)) ctx.depth = 2;
|
|
524
|
-
if (isUndefined(ctx.colors)) ctx.colors = false;
|
|
525
|
-
if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
|
|
526
|
-
if (ctx.colors) ctx.stylize = stylizeWithColor;
|
|
527
|
-
return formatValue(ctx, obj, ctx.depth);
|
|
528
|
-
}
|
|
529
|
-
exports.inspect = inspect;
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
|
|
533
|
-
inspect.colors = {
|
|
534
|
-
'bold' : [1, 22],
|
|
535
|
-
'italic' : [3, 23],
|
|
536
|
-
'underline' : [4, 24],
|
|
537
|
-
'inverse' : [7, 27],
|
|
538
|
-
'white' : [37, 39],
|
|
539
|
-
'grey' : [90, 39],
|
|
540
|
-
'black' : [30, 39],
|
|
541
|
-
'blue' : [34, 39],
|
|
542
|
-
'cyan' : [36, 39],
|
|
543
|
-
'green' : [32, 39],
|
|
544
|
-
'magenta' : [35, 39],
|
|
545
|
-
'red' : [31, 39],
|
|
546
|
-
'yellow' : [33, 39]
|
|
547
|
-
};
|
|
548
|
-
|
|
549
|
-
// Don't use 'blue' not visible on cmd.exe
|
|
550
|
-
inspect.styles = {
|
|
551
|
-
'special': 'cyan',
|
|
552
|
-
'number': 'yellow',
|
|
553
|
-
'boolean': 'yellow',
|
|
554
|
-
'undefined': 'grey',
|
|
555
|
-
'null': 'bold',
|
|
556
|
-
'string': 'green',
|
|
557
|
-
'date': 'magenta',
|
|
558
|
-
// "name": intentionally not styling
|
|
559
|
-
'regexp': 'red'
|
|
560
|
-
};
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
function stylizeWithColor(str, styleType) {
|
|
564
|
-
var style = inspect.styles[styleType];
|
|
565
|
-
|
|
566
|
-
if (style) {
|
|
567
|
-
return '\u001b[' + inspect.colors[style][0] + 'm' + str +
|
|
568
|
-
'\u001b[' + inspect.colors[style][1] + 'm';
|
|
569
|
-
} else {
|
|
570
|
-
return str;
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
function stylizeNoColor(str, styleType) {
|
|
576
|
-
return str;
|
|
577
|
-
}
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
function arrayToHash(array) {
|
|
581
|
-
var hash = {};
|
|
582
|
-
|
|
583
|
-
shims.forEach(array, function(val, idx) {
|
|
584
|
-
hash[val] = true;
|
|
585
|
-
});
|
|
586
|
-
|
|
587
|
-
return hash;
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
function formatValue(ctx, value, recurseTimes) {
|
|
592
|
-
// Provide a hook for user-specified inspect functions.
|
|
593
|
-
// Check that value is an object with an inspect function on it
|
|
594
|
-
if (ctx.customInspect &&
|
|
595
|
-
value &&
|
|
596
|
-
isFunction(value.inspect) &&
|
|
597
|
-
// Filter out the util module, it's inspect function is special
|
|
598
|
-
value.inspect !== exports.inspect &&
|
|
599
|
-
// Also filter out any prototype objects using the circular check.
|
|
600
|
-
!(value.constructor && value.constructor.prototype === value)) {
|
|
601
|
-
var ret = value.inspect(recurseTimes);
|
|
602
|
-
if (!isString(ret)) {
|
|
603
|
-
ret = formatValue(ctx, ret, recurseTimes);
|
|
604
|
-
}
|
|
605
|
-
return ret;
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
// Primitive types cannot have properties
|
|
609
|
-
var primitive = formatPrimitive(ctx, value);
|
|
610
|
-
if (primitive) {
|
|
611
|
-
return primitive;
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
// Look up the keys of the object.
|
|
615
|
-
var keys = shims.keys(value);
|
|
616
|
-
var visibleKeys = arrayToHash(keys);
|
|
617
|
-
|
|
618
|
-
if (ctx.showHidden) {
|
|
619
|
-
keys = shims.getOwnPropertyNames(value);
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
// Some type of object without properties can be shortcutted.
|
|
623
|
-
if (keys.length === 0) {
|
|
624
|
-
if (isFunction(value)) {
|
|
625
|
-
var name = value.name ? ': ' + value.name : '';
|
|
626
|
-
return ctx.stylize('[Function' + name + ']', 'special');
|
|
627
|
-
}
|
|
628
|
-
if (isRegExp(value)) {
|
|
629
|
-
return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
|
|
630
|
-
}
|
|
631
|
-
if (isDate(value)) {
|
|
632
|
-
return ctx.stylize(Date.prototype.toString.call(value), 'date');
|
|
633
|
-
}
|
|
634
|
-
if (isError(value)) {
|
|
635
|
-
return formatError(value);
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
|
|
639
|
-
var base = '', array = false, braces = ['{', '}'];
|
|
640
|
-
|
|
641
|
-
// Make Array say that they are Array
|
|
642
|
-
if (isArray(value)) {
|
|
643
|
-
array = true;
|
|
644
|
-
braces = ['[', ']'];
|
|
645
|
-
}
|
|
646
|
-
|
|
647
|
-
// Make functions say that they are functions
|
|
648
|
-
if (isFunction(value)) {
|
|
649
|
-
var n = value.name ? ': ' + value.name : '';
|
|
650
|
-
base = ' [Function' + n + ']';
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
// Make RegExps say that they are RegExps
|
|
654
|
-
if (isRegExp(value)) {
|
|
655
|
-
base = ' ' + RegExp.prototype.toString.call(value);
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
// Make dates with properties first say the date
|
|
659
|
-
if (isDate(value)) {
|
|
660
|
-
base = ' ' + Date.prototype.toUTCString.call(value);
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
// Make error with message first say the error
|
|
664
|
-
if (isError(value)) {
|
|
665
|
-
base = ' ' + formatError(value);
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
if (keys.length === 0 && (!array || value.length == 0)) {
|
|
669
|
-
return braces[0] + base + braces[1];
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
if (recurseTimes < 0) {
|
|
673
|
-
if (isRegExp(value)) {
|
|
674
|
-
return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
|
|
675
|
-
} else {
|
|
676
|
-
return ctx.stylize('[Object]', 'special');
|
|
677
|
-
}
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
ctx.seen.push(value);
|
|
681
|
-
|
|
682
|
-
var output;
|
|
683
|
-
if (array) {
|
|
684
|
-
output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
|
|
685
|
-
} else {
|
|
686
|
-
output = keys.map(function(key) {
|
|
687
|
-
return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
|
|
688
|
-
});
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
ctx.seen.pop();
|
|
692
|
-
|
|
693
|
-
return reduceToSingleString(output, base, braces);
|
|
694
|
-
}
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
function formatPrimitive(ctx, value) {
|
|
698
|
-
if (isUndefined(value))
|
|
699
|
-
return ctx.stylize('undefined', 'undefined');
|
|
700
|
-
if (isString(value)) {
|
|
701
|
-
var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
|
|
702
|
-
.replace(/'/g, "\\'")
|
|
703
|
-
.replace(/\\"/g, '"') + '\'';
|
|
704
|
-
return ctx.stylize(simple, 'string');
|
|
705
|
-
}
|
|
706
|
-
if (isNumber(value))
|
|
707
|
-
return ctx.stylize('' + value, 'number');
|
|
708
|
-
if (isBoolean(value))
|
|
709
|
-
return ctx.stylize('' + value, 'boolean');
|
|
710
|
-
// For some reason typeof null is "object", so special case here.
|
|
711
|
-
if (isNull(value))
|
|
712
|
-
return ctx.stylize('null', 'null');
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
function formatError(value) {
|
|
717
|
-
return '[' + Error.prototype.toString.call(value) + ']';
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
|
|
722
|
-
var output = [];
|
|
723
|
-
for (var i = 0, l = value.length; i < l; ++i) {
|
|
724
|
-
if (hasOwnProperty(value, String(i))) {
|
|
725
|
-
output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
|
|
726
|
-
String(i), true));
|
|
727
|
-
} else {
|
|
728
|
-
output.push('');
|
|
729
|
-
}
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
shims.forEach(keys, function(key) {
|
|
733
|
-
if (!key.match(/^\d+$/)) {
|
|
734
|
-
output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
|
|
735
|
-
key, true));
|
|
736
|
-
}
|
|
737
|
-
});
|
|
738
|
-
return output;
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
|
|
743
|
-
var name, str, desc;
|
|
744
|
-
desc = shims.getOwnPropertyDescriptor(value, key) || { value: value[key] };
|
|
745
|
-
if (desc.get) {
|
|
746
|
-
if (desc.set) {
|
|
747
|
-
str = ctx.stylize('[Getter/Setter]', 'special');
|
|
748
|
-
} else {
|
|
749
|
-
str = ctx.stylize('[Getter]', 'special');
|
|
750
|
-
}
|
|
751
|
-
} else {
|
|
752
|
-
if (desc.set) {
|
|
753
|
-
str = ctx.stylize('[Setter]', 'special');
|
|
754
|
-
}
|
|
755
|
-
}
|
|
756
|
-
|
|
757
|
-
if (!hasOwnProperty(visibleKeys, key)) {
|
|
758
|
-
name = '[' + key + ']';
|
|
759
|
-
}
|
|
760
|
-
if (!str) {
|
|
761
|
-
if (shims.indexOf(ctx.seen, desc.value) < 0) {
|
|
762
|
-
if (isNull(recurseTimes)) {
|
|
763
|
-
str = formatValue(ctx, desc.value, null);
|
|
764
|
-
} else {
|
|
765
|
-
str = formatValue(ctx, desc.value, recurseTimes - 1);
|
|
766
|
-
}
|
|
767
|
-
if (str.indexOf('\n') > -1) {
|
|
768
|
-
if (array) {
|
|
769
|
-
str = str.split('\n').map(function(line) {
|
|
770
|
-
return ' ' + line;
|
|
771
|
-
}).join('\n').substr(2);
|
|
772
|
-
} else {
|
|
773
|
-
str = '\n' + str.split('\n').map(function(line) {
|
|
774
|
-
return ' ' + line;
|
|
775
|
-
}).join('\n');
|
|
776
|
-
}
|
|
777
|
-
}
|
|
778
|
-
} else {
|
|
779
|
-
str = ctx.stylize('[Circular]', 'special');
|
|
780
|
-
}
|
|
781
|
-
}
|
|
782
|
-
if (isUndefined(name)) {
|
|
783
|
-
if (array && key.match(/^\d+$/)) {
|
|
784
|
-
return str;
|
|
785
|
-
}
|
|
786
|
-
name = JSON.stringify('' + key);
|
|
787
|
-
if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
|
|
788
|
-
name = name.substr(1, name.length - 2);
|
|
789
|
-
name = ctx.stylize(name, 'name');
|
|
790
|
-
} else {
|
|
791
|
-
name = name.replace(/'/g, "\\'")
|
|
792
|
-
.replace(/\\"/g, '"')
|
|
793
|
-
.replace(/(^"|"$)/g, "'");
|
|
794
|
-
name = ctx.stylize(name, 'string');
|
|
795
|
-
}
|
|
796
|
-
}
|
|
797
|
-
|
|
798
|
-
return name + ': ' + str;
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
function reduceToSingleString(output, base, braces) {
|
|
803
|
-
var numLinesEst = 0;
|
|
804
|
-
var length = shims.reduce(output, function(prev, cur) {
|
|
805
|
-
numLinesEst++;
|
|
806
|
-
if (cur.indexOf('\n') >= 0) numLinesEst++;
|
|
807
|
-
return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
|
|
808
|
-
}, 0);
|
|
809
|
-
|
|
810
|
-
if (length > 60) {
|
|
811
|
-
return braces[0] +
|
|
812
|
-
(base === '' ? '' : base + '\n ') +
|
|
813
|
-
' ' +
|
|
814
|
-
output.join(',\n ') +
|
|
815
|
-
' ' +
|
|
816
|
-
braces[1];
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
|
|
820
|
-
}
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
// NOTE: These type checking functions intentionally don't use `instanceof`
|
|
824
|
-
// because it is fragile and can be easily faked with `Object.create()`.
|
|
825
|
-
function isArray(ar) {
|
|
826
|
-
return shims.isArray(ar);
|
|
827
|
-
}
|
|
828
|
-
exports.isArray = isArray;
|
|
829
|
-
|
|
830
|
-
function isBoolean(arg) {
|
|
831
|
-
return typeof arg === 'boolean';
|
|
832
|
-
}
|
|
833
|
-
exports.isBoolean = isBoolean;
|
|
834
|
-
|
|
835
|
-
function isNull(arg) {
|
|
836
|
-
return arg === null;
|
|
837
|
-
}
|
|
838
|
-
exports.isNull = isNull;
|
|
839
|
-
|
|
840
|
-
function isNullOrUndefined(arg) {
|
|
841
|
-
return arg == null;
|
|
842
|
-
}
|
|
843
|
-
exports.isNullOrUndefined = isNullOrUndefined;
|
|
844
|
-
|
|
845
|
-
function isNumber(arg) {
|
|
846
|
-
return typeof arg === 'number';
|
|
847
|
-
}
|
|
848
|
-
exports.isNumber = isNumber;
|
|
849
|
-
|
|
850
|
-
function isString(arg) {
|
|
851
|
-
return typeof arg === 'string';
|
|
852
|
-
}
|
|
853
|
-
exports.isString = isString;
|
|
854
|
-
|
|
855
|
-
function isSymbol(arg) {
|
|
856
|
-
return typeof arg === 'symbol';
|
|
857
|
-
}
|
|
858
|
-
exports.isSymbol = isSymbol;
|
|
859
|
-
|
|
860
|
-
function isUndefined(arg) {
|
|
861
|
-
return arg === void 0;
|
|
862
|
-
}
|
|
863
|
-
exports.isUndefined = isUndefined;
|
|
864
|
-
|
|
865
|
-
function isRegExp(re) {
|
|
866
|
-
return isObject(re) && objectToString(re) === '[object RegExp]';
|
|
867
|
-
}
|
|
868
|
-
exports.isRegExp = isRegExp;
|
|
869
|
-
|
|
870
|
-
function isObject(arg) {
|
|
871
|
-
return typeof arg === 'object' && arg;
|
|
872
|
-
}
|
|
873
|
-
exports.isObject = isObject;
|
|
874
|
-
|
|
875
|
-
function isDate(d) {
|
|
876
|
-
return isObject(d) && objectToString(d) === '[object Date]';
|
|
877
|
-
}
|
|
878
|
-
exports.isDate = isDate;
|
|
879
|
-
|
|
880
|
-
function isError(e) {
|
|
881
|
-
return isObject(e) && objectToString(e) === '[object Error]';
|
|
882
|
-
}
|
|
883
|
-
exports.isError = isError;
|
|
884
|
-
|
|
885
|
-
function isFunction(arg) {
|
|
886
|
-
return typeof arg === 'function';
|
|
887
|
-
}
|
|
888
|
-
exports.isFunction = isFunction;
|
|
889
|
-
|
|
890
|
-
function isPrimitive(arg) {
|
|
891
|
-
return arg === null ||
|
|
892
|
-
typeof arg === 'boolean' ||
|
|
893
|
-
typeof arg === 'number' ||
|
|
894
|
-
typeof arg === 'string' ||
|
|
895
|
-
typeof arg === 'symbol' || // ES6 symbol
|
|
896
|
-
typeof arg === 'undefined';
|
|
897
|
-
}
|
|
898
|
-
exports.isPrimitive = isPrimitive;
|
|
899
|
-
|
|
900
|
-
function isBuffer(arg) {
|
|
901
|
-
return arg instanceof Buffer;
|
|
902
|
-
}
|
|
903
|
-
exports.isBuffer = isBuffer;
|
|
904
|
-
|
|
905
|
-
function objectToString(o) {
|
|
906
|
-
return Object.prototype.toString.call(o);
|
|
907
|
-
}
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
function pad(n) {
|
|
911
|
-
return n < 10 ? '0' + n.toString(10) : n.toString(10);
|
|
912
|
-
}
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
|
|
916
|
-
'Oct', 'Nov', 'Dec'];
|
|
917
|
-
|
|
918
|
-
// 26 Feb 16:19:34
|
|
919
|
-
function timestamp() {
|
|
920
|
-
var d = new Date();
|
|
921
|
-
var time = [pad(d.getHours()),
|
|
922
|
-
pad(d.getMinutes()),
|
|
923
|
-
pad(d.getSeconds())].join(':');
|
|
924
|
-
return [d.getDate(), months[d.getMonth()], time].join(' ');
|
|
925
|
-
}
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
// log is just a thin wrapper to console.log that prepends a timestamp
|
|
929
|
-
exports.log = function() {
|
|
930
|
-
console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
|
|
931
|
-
};
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
/**
|
|
935
|
-
* Inherit the prototype methods from one constructor into another.
|
|
936
|
-
*
|
|
937
|
-
* The Function.prototype.inherits from lang.js rewritten as a standalone
|
|
938
|
-
* function (not on Function.prototype). NOTE: If this file is to be loaded
|
|
939
|
-
* during bootstrapping this function needs to be rewritten using some native
|
|
940
|
-
* functions as prototype setup using normal JavaScript does not work as
|
|
941
|
-
* expected during bootstrapping (see mirror.js in r114903).
|
|
942
|
-
*
|
|
943
|
-
* @param {function} ctor Constructor function which needs to inherit the
|
|
944
|
-
* prototype.
|
|
945
|
-
* @param {function} superCtor Constructor function to inherit prototype from.
|
|
946
|
-
*/
|
|
947
|
-
exports.inherits = function(ctor, superCtor) {
|
|
948
|
-
ctor.super_ = superCtor;
|
|
949
|
-
ctor.prototype = shims.create(superCtor.prototype, {
|
|
950
|
-
constructor: {
|
|
951
|
-
value: ctor,
|
|
952
|
-
enumerable: false,
|
|
953
|
-
writable: true,
|
|
954
|
-
configurable: true
|
|
955
|
-
}
|
|
956
|
-
});
|
|
957
|
-
};
|
|
958
|
-
|
|
959
|
-
exports._extend = function(origin, add) {
|
|
960
|
-
// Don't do anything if add isn't an object
|
|
961
|
-
if (!add || !isObject(add)) return origin;
|
|
962
|
-
|
|
963
|
-
var keys = shims.keys(add);
|
|
964
|
-
var i = keys.length;
|
|
965
|
-
while (i--) {
|
|
966
|
-
origin[keys[i]] = add[keys[i]];
|
|
967
|
-
}
|
|
968
|
-
return origin;
|
|
969
|
-
};
|
|
970
|
-
|
|
971
|
-
function hasOwnProperty(obj, prop) {
|
|
972
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
973
|
-
}
|
|
974
|
-
|
|
975
|
-
},{"__browserify_Buffer":4,"_shims":1}],4:[function(require,module,exports){
|
|
976
|
-
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
|
977
|
-
exports.readIEEE754 = function(buffer, offset, isBE, mLen, nBytes) {
|
|
978
|
-
var e, m,
|
|
979
|
-
eLen = nBytes * 8 - mLen - 1,
|
|
980
|
-
eMax = (1 << eLen) - 1,
|
|
981
|
-
eBias = eMax >> 1,
|
|
982
|
-
nBits = -7,
|
|
983
|
-
i = isBE ? 0 : (nBytes - 1),
|
|
984
|
-
d = isBE ? 1 : -1,
|
|
985
|
-
s = buffer[offset + i];
|
|
986
|
-
|
|
987
|
-
i += d;
|
|
988
|
-
|
|
989
|
-
e = s & ((1 << (-nBits)) - 1);
|
|
990
|
-
s >>= (-nBits);
|
|
991
|
-
nBits += eLen;
|
|
992
|
-
for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);
|
|
993
|
-
|
|
994
|
-
m = e & ((1 << (-nBits)) - 1);
|
|
995
|
-
e >>= (-nBits);
|
|
996
|
-
nBits += mLen;
|
|
997
|
-
for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);
|
|
998
|
-
|
|
999
|
-
if (e === 0) {
|
|
1000
|
-
e = 1 - eBias;
|
|
1001
|
-
} else if (e === eMax) {
|
|
1002
|
-
return m ? NaN : ((s ? -1 : 1) * Infinity);
|
|
1003
|
-
} else {
|
|
1004
|
-
m = m + Math.pow(2, mLen);
|
|
1005
|
-
e = e - eBias;
|
|
1006
|
-
}
|
|
1007
|
-
return (s ? -1 : 1) * m * Math.pow(2, e - mLen);
|
|
1008
|
-
};
|
|
1009
|
-
|
|
1010
|
-
exports.writeIEEE754 = function(buffer, value, offset, isBE, mLen, nBytes) {
|
|
1011
|
-
var e, m, c,
|
|
1012
|
-
eLen = nBytes * 8 - mLen - 1,
|
|
1013
|
-
eMax = (1 << eLen) - 1,
|
|
1014
|
-
eBias = eMax >> 1,
|
|
1015
|
-
rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),
|
|
1016
|
-
i = isBE ? (nBytes - 1) : 0,
|
|
1017
|
-
d = isBE ? -1 : 1,
|
|
1018
|
-
s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;
|
|
1019
|
-
|
|
1020
|
-
value = Math.abs(value);
|
|
1021
|
-
|
|
1022
|
-
if (isNaN(value) || value === Infinity) {
|
|
1023
|
-
m = isNaN(value) ? 1 : 0;
|
|
1024
|
-
e = eMax;
|
|
1025
|
-
} else {
|
|
1026
|
-
e = Math.floor(Math.log(value) / Math.LN2);
|
|
1027
|
-
if (value * (c = Math.pow(2, -e)) < 1) {
|
|
1028
|
-
e--;
|
|
1029
|
-
c *= 2;
|
|
1030
|
-
}
|
|
1031
|
-
if (e + eBias >= 1) {
|
|
1032
|
-
value += rt / c;
|
|
1033
|
-
} else {
|
|
1034
|
-
value += rt * Math.pow(2, 1 - eBias);
|
|
1035
|
-
}
|
|
1036
|
-
if (value * c >= 2) {
|
|
1037
|
-
e++;
|
|
1038
|
-
c /= 2;
|
|
1039
|
-
}
|
|
1040
|
-
|
|
1041
|
-
if (e + eBias >= eMax) {
|
|
1042
|
-
m = 0;
|
|
1043
|
-
e = eMax;
|
|
1044
|
-
} else if (e + eBias >= 1) {
|
|
1045
|
-
m = (value * c - 1) * Math.pow(2, mLen);
|
|
1046
|
-
e = e + eBias;
|
|
1047
|
-
} else {
|
|
1048
|
-
m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
|
|
1049
|
-
e = 0;
|
|
1050
|
-
}
|
|
1051
|
-
}
|
|
1052
|
-
|
|
1053
|
-
for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);
|
|
1054
|
-
|
|
1055
|
-
e = (e << mLen) | m;
|
|
1056
|
-
eLen += mLen;
|
|
1057
|
-
for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);
|
|
1058
|
-
|
|
1059
|
-
buffer[offset + i - d] |= s * 128;
|
|
1060
|
-
};
|
|
1061
|
-
|
|
1062
|
-
},{}],"q9TxCC":[function(require,module,exports){
|
|
1063
|
-
var assert;
|
|
1064
|
-
exports.Buffer = Buffer;
|
|
1065
|
-
exports.SlowBuffer = Buffer;
|
|
1066
|
-
Buffer.poolSize = 8192;
|
|
1067
|
-
exports.INSPECT_MAX_BYTES = 50;
|
|
1068
|
-
|
|
1069
|
-
function stringtrim(str) {
|
|
1070
|
-
if (str.trim) return str.trim();
|
|
1071
|
-
return str.replace(/^\s+|\s+$/g, '');
|
|
1072
|
-
}
|
|
1073
|
-
|
|
1074
|
-
function Buffer(subject, encoding, offset) {
|
|
1075
|
-
if(!assert) assert= require('assert');
|
|
1076
|
-
if (!(this instanceof Buffer)) {
|
|
1077
|
-
return new Buffer(subject, encoding, offset);
|
|
1078
|
-
}
|
|
1079
|
-
this.parent = this;
|
|
1080
|
-
this.offset = 0;
|
|
1081
|
-
|
|
1082
|
-
// Work-around: node's base64 implementation
|
|
1083
|
-
// allows for non-padded strings while base64-js
|
|
1084
|
-
// does not..
|
|
1085
|
-
if (encoding == "base64" && typeof subject == "string") {
|
|
1086
|
-
subject = stringtrim(subject);
|
|
1087
|
-
while (subject.length % 4 != 0) {
|
|
1088
|
-
subject = subject + "=";
|
|
1089
|
-
}
|
|
1090
|
-
}
|
|
1091
|
-
|
|
1092
|
-
var type;
|
|
1093
|
-
|
|
1094
|
-
// Are we slicing?
|
|
1095
|
-
if (typeof offset === 'number') {
|
|
1096
|
-
this.length = coerce(encoding);
|
|
1097
|
-
// slicing works, with limitations (no parent tracking/update)
|
|
1098
|
-
// check https://github.com/toots/buffer-browserify/issues/19
|
|
1099
|
-
for (var i = 0; i < this.length; i++) {
|
|
1100
|
-
this[i] = subject.get(i+offset);
|
|
1101
|
-
}
|
|
1102
|
-
} else {
|
|
1103
|
-
// Find the length
|
|
1104
|
-
switch (type = typeof subject) {
|
|
1105
|
-
case 'number':
|
|
1106
|
-
this.length = coerce(subject);
|
|
1107
|
-
break;
|
|
1108
|
-
|
|
1109
|
-
case 'string':
|
|
1110
|
-
this.length = Buffer.byteLength(subject, encoding);
|
|
1111
|
-
break;
|
|
1112
|
-
|
|
1113
|
-
case 'object': // Assume object is an array
|
|
1114
|
-
this.length = coerce(subject.length);
|
|
1115
|
-
break;
|
|
1116
|
-
|
|
1117
|
-
default:
|
|
1118
|
-
throw new Error('First argument needs to be a number, ' +
|
|
1119
|
-
'array or string.');
|
|
1120
|
-
}
|
|
1121
|
-
|
|
1122
|
-
// Treat array-ish objects as a byte array.
|
|
1123
|
-
if (isArrayIsh(subject)) {
|
|
1124
|
-
for (var i = 0; i < this.length; i++) {
|
|
1125
|
-
if (subject instanceof Buffer) {
|
|
1126
|
-
this[i] = subject.readUInt8(i);
|
|
1127
|
-
}
|
|
1128
|
-
else {
|
|
1129
|
-
this[i] = subject[i];
|
|
1130
|
-
}
|
|
1131
|
-
}
|
|
1132
|
-
} else if (type == 'string') {
|
|
1133
|
-
// We are a string
|
|
1134
|
-
this.length = this.write(subject, 0, encoding);
|
|
1135
|
-
} else if (type === 'number') {
|
|
1136
|
-
for (var i = 0; i < this.length; i++) {
|
|
1137
|
-
this[i] = 0;
|
|
1138
|
-
}
|
|
1139
|
-
}
|
|
1140
|
-
}
|
|
1141
|
-
}
|
|
1142
|
-
|
|
1143
|
-
Buffer.prototype.get = function get(i) {
|
|
1144
|
-
if (i < 0 || i >= this.length) throw new Error('oob');
|
|
1145
|
-
return this[i];
|
|
1146
|
-
};
|
|
1147
|
-
|
|
1148
|
-
Buffer.prototype.set = function set(i, v) {
|
|
1149
|
-
if (i < 0 || i >= this.length) throw new Error('oob');
|
|
1150
|
-
return this[i] = v;
|
|
1151
|
-
};
|
|
1152
|
-
|
|
1153
|
-
Buffer.byteLength = function (str, encoding) {
|
|
1154
|
-
switch (encoding || "utf8") {
|
|
1155
|
-
case 'hex':
|
|
1156
|
-
return str.length / 2;
|
|
1157
|
-
|
|
1158
|
-
case 'utf8':
|
|
1159
|
-
case 'utf-8':
|
|
1160
|
-
return utf8ToBytes(str).length;
|
|
1161
|
-
|
|
1162
|
-
case 'ascii':
|
|
1163
|
-
case 'binary':
|
|
1164
|
-
return str.length;
|
|
1165
|
-
|
|
1166
|
-
case 'base64':
|
|
1167
|
-
return base64ToBytes(str).length;
|
|
1168
|
-
|
|
1169
|
-
default:
|
|
1170
|
-
throw new Error('Unknown encoding');
|
|
1171
|
-
}
|
|
1172
|
-
};
|
|
1173
|
-
|
|
1174
|
-
Buffer.prototype.utf8Write = function (string, offset, length) {
|
|
1175
|
-
var bytes, pos;
|
|
1176
|
-
return Buffer._charsWritten = blitBuffer(utf8ToBytes(string), this, offset, length);
|
|
1177
|
-
};
|
|
1178
|
-
|
|
1179
|
-
Buffer.prototype.asciiWrite = function (string, offset, length) {
|
|
1180
|
-
var bytes, pos;
|
|
1181
|
-
return Buffer._charsWritten = blitBuffer(asciiToBytes(string), this, offset, length);
|
|
1182
|
-
};
|
|
1183
|
-
|
|
1184
|
-
Buffer.prototype.binaryWrite = Buffer.prototype.asciiWrite;
|
|
1185
|
-
|
|
1186
|
-
Buffer.prototype.base64Write = function (string, offset, length) {
|
|
1187
|
-
var bytes, pos;
|
|
1188
|
-
return Buffer._charsWritten = blitBuffer(base64ToBytes(string), this, offset, length);
|
|
1189
|
-
};
|
|
1190
|
-
|
|
1191
|
-
Buffer.prototype.base64Slice = function (start, end) {
|
|
1192
|
-
var bytes = Array.prototype.slice.apply(this, arguments)
|
|
1193
|
-
return require("base64-js").fromByteArray(bytes);
|
|
1194
|
-
};
|
|
1195
|
-
|
|
1196
|
-
Buffer.prototype.utf8Slice = function () {
|
|
1197
|
-
var bytes = Array.prototype.slice.apply(this, arguments);
|
|
1198
|
-
var res = "";
|
|
1199
|
-
var tmp = "";
|
|
1200
|
-
var i = 0;
|
|
1201
|
-
while (i < bytes.length) {
|
|
1202
|
-
if (bytes[i] <= 0x7F) {
|
|
1203
|
-
res += decodeUtf8Char(tmp) + String.fromCharCode(bytes[i]);
|
|
1204
|
-
tmp = "";
|
|
1205
|
-
} else
|
|
1206
|
-
tmp += "%" + bytes[i].toString(16);
|
|
1207
|
-
|
|
1208
|
-
i++;
|
|
1209
|
-
}
|
|
1210
|
-
|
|
1211
|
-
return res + decodeUtf8Char(tmp);
|
|
1212
|
-
}
|
|
1213
|
-
|
|
1214
|
-
Buffer.prototype.asciiSlice = function () {
|
|
1215
|
-
var bytes = Array.prototype.slice.apply(this, arguments);
|
|
1216
|
-
var ret = "";
|
|
1217
|
-
for (var i = 0; i < bytes.length; i++)
|
|
1218
|
-
ret += String.fromCharCode(bytes[i]);
|
|
1219
|
-
return ret;
|
|
1220
|
-
}
|
|
1221
|
-
|
|
1222
|
-
Buffer.prototype.binarySlice = Buffer.prototype.asciiSlice;
|
|
1223
|
-
|
|
1224
|
-
Buffer.prototype.inspect = function() {
|
|
1225
|
-
var out = [],
|
|
1226
|
-
len = this.length;
|
|
1227
|
-
for (var i = 0; i < len; i++) {
|
|
1228
|
-
out[i] = toHex(this[i]);
|
|
1229
|
-
if (i == exports.INSPECT_MAX_BYTES) {
|
|
1230
|
-
out[i + 1] = '...';
|
|
1231
|
-
break;
|
|
1232
|
-
}
|
|
1233
|
-
}
|
|
1234
|
-
return '<Buffer ' + out.join(' ') + '>';
|
|
1235
|
-
};
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
Buffer.prototype.hexSlice = function(start, end) {
|
|
1239
|
-
var len = this.length;
|
|
1240
|
-
|
|
1241
|
-
if (!start || start < 0) start = 0;
|
|
1242
|
-
if (!end || end < 0 || end > len) end = len;
|
|
1243
|
-
|
|
1244
|
-
var out = '';
|
|
1245
|
-
for (var i = start; i < end; i++) {
|
|
1246
|
-
out += toHex(this[i]);
|
|
1247
|
-
}
|
|
1248
|
-
return out;
|
|
1249
|
-
};
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
Buffer.prototype.toString = function(encoding, start, end) {
|
|
1253
|
-
encoding = String(encoding || 'utf8').toLowerCase();
|
|
1254
|
-
start = +start || 0;
|
|
1255
|
-
if (typeof end == 'undefined') end = this.length;
|
|
1256
|
-
|
|
1257
|
-
// Fastpath empty strings
|
|
1258
|
-
if (+end == start) {
|
|
1259
|
-
return '';
|
|
1260
|
-
}
|
|
1261
|
-
|
|
1262
|
-
switch (encoding) {
|
|
1263
|
-
case 'hex':
|
|
1264
|
-
return this.hexSlice(start, end);
|
|
1265
|
-
|
|
1266
|
-
case 'utf8':
|
|
1267
|
-
case 'utf-8':
|
|
1268
|
-
return this.utf8Slice(start, end);
|
|
1269
|
-
|
|
1270
|
-
case 'ascii':
|
|
1271
|
-
return this.asciiSlice(start, end);
|
|
1272
|
-
|
|
1273
|
-
case 'binary':
|
|
1274
|
-
return this.binarySlice(start, end);
|
|
1275
|
-
|
|
1276
|
-
case 'base64':
|
|
1277
|
-
return this.base64Slice(start, end);
|
|
1278
|
-
|
|
1279
|
-
case 'ucs2':
|
|
1280
|
-
case 'ucs-2':
|
|
1281
|
-
return this.ucs2Slice(start, end);
|
|
1282
|
-
|
|
1283
|
-
default:
|
|
1284
|
-
throw new Error('Unknown encoding');
|
|
1285
|
-
}
|
|
1286
|
-
};
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
Buffer.prototype.hexWrite = function(string, offset, length) {
|
|
1290
|
-
offset = +offset || 0;
|
|
1291
|
-
var remaining = this.length - offset;
|
|
1292
|
-
if (!length) {
|
|
1293
|
-
length = remaining;
|
|
1294
|
-
} else {
|
|
1295
|
-
length = +length;
|
|
1296
|
-
if (length > remaining) {
|
|
1297
|
-
length = remaining;
|
|
1298
|
-
}
|
|
1299
|
-
}
|
|
1300
|
-
|
|
1301
|
-
// must be an even number of digits
|
|
1302
|
-
var strLen = string.length;
|
|
1303
|
-
if (strLen % 2) {
|
|
1304
|
-
throw new Error('Invalid hex string');
|
|
1305
|
-
}
|
|
1306
|
-
if (length > strLen / 2) {
|
|
1307
|
-
length = strLen / 2;
|
|
1308
|
-
}
|
|
1309
|
-
for (var i = 0; i < length; i++) {
|
|
1310
|
-
var byte = parseInt(string.substr(i * 2, 2), 16);
|
|
1311
|
-
if (isNaN(byte)) throw new Error('Invalid hex string');
|
|
1312
|
-
this[offset + i] = byte;
|
|
1313
|
-
}
|
|
1314
|
-
Buffer._charsWritten = i * 2;
|
|
1315
|
-
return i;
|
|
1316
|
-
};
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
Buffer.prototype.write = function(string, offset, length, encoding) {
|
|
1320
|
-
// Support both (string, offset, length, encoding)
|
|
1321
|
-
// and the legacy (string, encoding, offset, length)
|
|
1322
|
-
if (isFinite(offset)) {
|
|
1323
|
-
if (!isFinite(length)) {
|
|
1324
|
-
encoding = length;
|
|
1325
|
-
length = undefined;
|
|
1326
|
-
}
|
|
1327
|
-
} else { // legacy
|
|
1328
|
-
var swap = encoding;
|
|
1329
|
-
encoding = offset;
|
|
1330
|
-
offset = length;
|
|
1331
|
-
length = swap;
|
|
1332
|
-
}
|
|
1333
|
-
|
|
1334
|
-
offset = +offset || 0;
|
|
1335
|
-
var remaining = this.length - offset;
|
|
1336
|
-
if (!length) {
|
|
1337
|
-
length = remaining;
|
|
1338
|
-
} else {
|
|
1339
|
-
length = +length;
|
|
1340
|
-
if (length > remaining) {
|
|
1341
|
-
length = remaining;
|
|
1342
|
-
}
|
|
1343
|
-
}
|
|
1344
|
-
encoding = String(encoding || 'utf8').toLowerCase();
|
|
1345
|
-
|
|
1346
|
-
switch (encoding) {
|
|
1347
|
-
case 'hex':
|
|
1348
|
-
return this.hexWrite(string, offset, length);
|
|
1349
|
-
|
|
1350
|
-
case 'utf8':
|
|
1351
|
-
case 'utf-8':
|
|
1352
|
-
return this.utf8Write(string, offset, length);
|
|
1353
|
-
|
|
1354
|
-
case 'ascii':
|
|
1355
|
-
return this.asciiWrite(string, offset, length);
|
|
1356
|
-
|
|
1357
|
-
case 'binary':
|
|
1358
|
-
return this.binaryWrite(string, offset, length);
|
|
1359
|
-
|
|
1360
|
-
case 'base64':
|
|
1361
|
-
return this.base64Write(string, offset, length);
|
|
1362
|
-
|
|
1363
|
-
case 'ucs2':
|
|
1364
|
-
case 'ucs-2':
|
|
1365
|
-
return this.ucs2Write(string, offset, length);
|
|
1366
|
-
|
|
1367
|
-
default:
|
|
1368
|
-
throw new Error('Unknown encoding');
|
|
1369
|
-
}
|
|
1370
|
-
};
|
|
1371
|
-
|
|
1372
|
-
// slice(start, end)
|
|
1373
|
-
function clamp(index, len, defaultValue) {
|
|
1374
|
-
if (typeof index !== 'number') return defaultValue;
|
|
1375
|
-
index = ~~index; // Coerce to integer.
|
|
1376
|
-
if (index >= len) return len;
|
|
1377
|
-
if (index >= 0) return index;
|
|
1378
|
-
index += len;
|
|
1379
|
-
if (index >= 0) return index;
|
|
1380
|
-
return 0;
|
|
1381
|
-
}
|
|
1382
|
-
|
|
1383
|
-
Buffer.prototype.slice = function(start, end) {
|
|
1384
|
-
var len = this.length;
|
|
1385
|
-
start = clamp(start, len, 0);
|
|
1386
|
-
end = clamp(end, len, len);
|
|
1387
|
-
return new Buffer(this, end - start, +start);
|
|
1388
|
-
};
|
|
1389
|
-
|
|
1390
|
-
// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
|
|
1391
|
-
Buffer.prototype.copy = function(target, target_start, start, end) {
|
|
1392
|
-
var source = this;
|
|
1393
|
-
start || (start = 0);
|
|
1394
|
-
if (end === undefined || isNaN(end)) {
|
|
1395
|
-
end = this.length;
|
|
1396
|
-
}
|
|
1397
|
-
target_start || (target_start = 0);
|
|
1398
|
-
|
|
1399
|
-
if (end < start) throw new Error('sourceEnd < sourceStart');
|
|
1400
|
-
|
|
1401
|
-
// Copy 0 bytes; we're done
|
|
1402
|
-
if (end === start) return 0;
|
|
1403
|
-
if (target.length == 0 || source.length == 0) return 0;
|
|
1404
|
-
|
|
1405
|
-
if (target_start < 0 || target_start >= target.length) {
|
|
1406
|
-
throw new Error('targetStart out of bounds');
|
|
1407
|
-
}
|
|
1408
|
-
|
|
1409
|
-
if (start < 0 || start >= source.length) {
|
|
1410
|
-
throw new Error('sourceStart out of bounds');
|
|
1411
|
-
}
|
|
1412
|
-
|
|
1413
|
-
if (end < 0 || end > source.length) {
|
|
1414
|
-
throw new Error('sourceEnd out of bounds');
|
|
1415
|
-
}
|
|
1416
|
-
|
|
1417
|
-
// Are we oob?
|
|
1418
|
-
if (end > this.length) {
|
|
1419
|
-
end = this.length;
|
|
1420
|
-
}
|
|
1421
|
-
|
|
1422
|
-
if (target.length - target_start < end - start) {
|
|
1423
|
-
end = target.length - target_start + start;
|
|
1424
|
-
}
|
|
1425
|
-
|
|
1426
|
-
var temp = [];
|
|
1427
|
-
for (var i=start; i<end; i++) {
|
|
1428
|
-
assert.ok(typeof this[i] !== 'undefined', "copying undefined buffer bytes!");
|
|
1429
|
-
temp.push(this[i]);
|
|
1430
|
-
}
|
|
1431
|
-
|
|
1432
|
-
for (var i=target_start; i<target_start+temp.length; i++) {
|
|
1433
|
-
target[i] = temp[i-target_start];
|
|
1434
|
-
}
|
|
1435
|
-
};
|
|
1436
|
-
|
|
1437
|
-
// fill(value, start=0, end=buffer.length)
|
|
1438
|
-
Buffer.prototype.fill = function fill(value, start, end) {
|
|
1439
|
-
value || (value = 0);
|
|
1440
|
-
start || (start = 0);
|
|
1441
|
-
end || (end = this.length);
|
|
1442
|
-
|
|
1443
|
-
if (typeof value === 'string') {
|
|
1444
|
-
value = value.charCodeAt(0);
|
|
1445
|
-
}
|
|
1446
|
-
if (!(typeof value === 'number') || isNaN(value)) {
|
|
1447
|
-
throw new Error('value is not a number');
|
|
1448
|
-
}
|
|
1449
|
-
|
|
1450
|
-
if (end < start) throw new Error('end < start');
|
|
1451
|
-
|
|
1452
|
-
// Fill 0 bytes; we're done
|
|
1453
|
-
if (end === start) return 0;
|
|
1454
|
-
if (this.length == 0) return 0;
|
|
1455
|
-
|
|
1456
|
-
if (start < 0 || start >= this.length) {
|
|
1457
|
-
throw new Error('start out of bounds');
|
|
1458
|
-
}
|
|
1459
|
-
|
|
1460
|
-
if (end < 0 || end > this.length) {
|
|
1461
|
-
throw new Error('end out of bounds');
|
|
1462
|
-
}
|
|
1463
|
-
|
|
1464
|
-
for (var i = start; i < end; i++) {
|
|
1465
|
-
this[i] = value;
|
|
1466
|
-
}
|
|
1467
|
-
}
|
|
1468
|
-
|
|
1469
|
-
// Static methods
|
|
1470
|
-
Buffer.isBuffer = function isBuffer(b) {
|
|
1471
|
-
return b instanceof Buffer || b instanceof Buffer;
|
|
1472
|
-
};
|
|
1473
|
-
|
|
1474
|
-
Buffer.concat = function (list, totalLength) {
|
|
1475
|
-
if (!isArray(list)) {
|
|
1476
|
-
throw new Error("Usage: Buffer.concat(list, [totalLength])\n \
|
|
1477
|
-
list should be an Array.");
|
|
1478
|
-
}
|
|
1479
|
-
|
|
1480
|
-
if (list.length === 0) {
|
|
1481
|
-
return new Buffer(0);
|
|
1482
|
-
} else if (list.length === 1) {
|
|
1483
|
-
return list[0];
|
|
1484
|
-
}
|
|
1485
|
-
|
|
1486
|
-
if (typeof totalLength !== 'number') {
|
|
1487
|
-
totalLength = 0;
|
|
1488
|
-
for (var i = 0; i < list.length; i++) {
|
|
1489
|
-
var buf = list[i];
|
|
1490
|
-
totalLength += buf.length;
|
|
1491
|
-
}
|
|
1492
|
-
}
|
|
1493
|
-
|
|
1494
|
-
var buffer = new Buffer(totalLength);
|
|
1495
|
-
var pos = 0;
|
|
1496
|
-
for (var i = 0; i < list.length; i++) {
|
|
1497
|
-
var buf = list[i];
|
|
1498
|
-
buf.copy(buffer, pos);
|
|
1499
|
-
pos += buf.length;
|
|
1500
|
-
}
|
|
1501
|
-
return buffer;
|
|
1502
|
-
};
|
|
1503
|
-
|
|
1504
|
-
Buffer.isEncoding = function(encoding) {
|
|
1505
|
-
switch ((encoding + '').toLowerCase()) {
|
|
1506
|
-
case 'hex':
|
|
1507
|
-
case 'utf8':
|
|
1508
|
-
case 'utf-8':
|
|
1509
|
-
case 'ascii':
|
|
1510
|
-
case 'binary':
|
|
1511
|
-
case 'base64':
|
|
1512
|
-
case 'ucs2':
|
|
1513
|
-
case 'ucs-2':
|
|
1514
|
-
case 'utf16le':
|
|
1515
|
-
case 'utf-16le':
|
|
1516
|
-
case 'raw':
|
|
1517
|
-
return true;
|
|
1518
|
-
|
|
1519
|
-
default:
|
|
1520
|
-
return false;
|
|
1521
|
-
}
|
|
1522
|
-
};
|
|
1523
|
-
|
|
1524
|
-
// helpers
|
|
1525
|
-
|
|
1526
|
-
function coerce(length) {
|
|
1527
|
-
// Coerce length to a number (possibly NaN), round up
|
|
1528
|
-
// in case it's fractional (e.g. 123.456) then do a
|
|
1529
|
-
// double negate to coerce a NaN to 0. Easy, right?
|
|
1530
|
-
length = ~~Math.ceil(+length);
|
|
1531
|
-
return length < 0 ? 0 : length;
|
|
1532
|
-
}
|
|
1533
|
-
|
|
1534
|
-
function isArray(subject) {
|
|
1535
|
-
return (Array.isArray ||
|
|
1536
|
-
function(subject){
|
|
1537
|
-
return {}.toString.apply(subject) == '[object Array]'
|
|
1538
|
-
})
|
|
1539
|
-
(subject)
|
|
1540
|
-
}
|
|
1541
|
-
|
|
1542
|
-
function isArrayIsh(subject) {
|
|
1543
|
-
return isArray(subject) || Buffer.isBuffer(subject) ||
|
|
1544
|
-
subject && typeof subject === 'object' &&
|
|
1545
|
-
typeof subject.length === 'number';
|
|
1546
|
-
}
|
|
1547
|
-
|
|
1548
|
-
function toHex(n) {
|
|
1549
|
-
if (n < 16) return '0' + n.toString(16);
|
|
1550
|
-
return n.toString(16);
|
|
1551
|
-
}
|
|
1552
|
-
|
|
1553
|
-
function utf8ToBytes(str) {
|
|
1554
|
-
var byteArray = [];
|
|
1555
|
-
for (var i = 0; i < str.length; i++)
|
|
1556
|
-
if (str.charCodeAt(i) <= 0x7F)
|
|
1557
|
-
byteArray.push(str.charCodeAt(i));
|
|
1558
|
-
else {
|
|
1559
|
-
var h = encodeURIComponent(str.charAt(i)).substr(1).split('%');
|
|
1560
|
-
for (var j = 0; j < h.length; j++)
|
|
1561
|
-
byteArray.push(parseInt(h[j], 16));
|
|
1562
|
-
}
|
|
1563
|
-
|
|
1564
|
-
return byteArray;
|
|
1565
|
-
}
|
|
1566
|
-
|
|
1567
|
-
function asciiToBytes(str) {
|
|
1568
|
-
var byteArray = []
|
|
1569
|
-
for (var i = 0; i < str.length; i++ )
|
|
1570
|
-
// Node's code seems to be doing this and not & 0x7F..
|
|
1571
|
-
byteArray.push( str.charCodeAt(i) & 0xFF );
|
|
1572
|
-
|
|
1573
|
-
return byteArray;
|
|
1574
|
-
}
|
|
1575
|
-
|
|
1576
|
-
function base64ToBytes(str) {
|
|
1577
|
-
return require("base64-js").toByteArray(str);
|
|
1578
|
-
}
|
|
1579
|
-
|
|
1580
|
-
function blitBuffer(src, dst, offset, length) {
|
|
1581
|
-
var pos, i = 0;
|
|
1582
|
-
while (i < length) {
|
|
1583
|
-
if ((i+offset >= dst.length) || (i >= src.length))
|
|
1584
|
-
break;
|
|
1585
|
-
|
|
1586
|
-
dst[i + offset] = src[i];
|
|
1587
|
-
i++;
|
|
1588
|
-
}
|
|
1589
|
-
return i;
|
|
1590
|
-
}
|
|
1591
|
-
|
|
1592
|
-
function decodeUtf8Char(str) {
|
|
1593
|
-
try {
|
|
1594
|
-
return decodeURIComponent(str);
|
|
1595
|
-
} catch (err) {
|
|
1596
|
-
return String.fromCharCode(0xFFFD); // UTF 8 invalid char
|
|
1597
|
-
}
|
|
1598
|
-
}
|
|
1599
|
-
|
|
1600
|
-
// read/write bit-twiddling
|
|
1601
|
-
|
|
1602
|
-
Buffer.prototype.readUInt8 = function(offset, noAssert) {
|
|
1603
|
-
var buffer = this;
|
|
1604
|
-
|
|
1605
|
-
if (!noAssert) {
|
|
1606
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
1607
|
-
'missing offset');
|
|
1608
|
-
|
|
1609
|
-
assert.ok(offset < buffer.length,
|
|
1610
|
-
'Trying to read beyond buffer length');
|
|
1611
|
-
}
|
|
1612
|
-
|
|
1613
|
-
if (offset >= buffer.length) return;
|
|
1614
|
-
|
|
1615
|
-
return buffer[offset];
|
|
1616
|
-
};
|
|
1617
|
-
|
|
1618
|
-
function readUInt16(buffer, offset, isBigEndian, noAssert) {
|
|
1619
|
-
var val = 0;
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
if (!noAssert) {
|
|
1623
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
1624
|
-
'missing or invalid endian');
|
|
1625
|
-
|
|
1626
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
1627
|
-
'missing offset');
|
|
1628
|
-
|
|
1629
|
-
assert.ok(offset + 1 < buffer.length,
|
|
1630
|
-
'Trying to read beyond buffer length');
|
|
1631
|
-
}
|
|
1632
|
-
|
|
1633
|
-
if (offset >= buffer.length) return 0;
|
|
1634
|
-
|
|
1635
|
-
if (isBigEndian) {
|
|
1636
|
-
val = buffer[offset] << 8;
|
|
1637
|
-
if (offset + 1 < buffer.length) {
|
|
1638
|
-
val |= buffer[offset + 1];
|
|
1639
|
-
}
|
|
1640
|
-
} else {
|
|
1641
|
-
val = buffer[offset];
|
|
1642
|
-
if (offset + 1 < buffer.length) {
|
|
1643
|
-
val |= buffer[offset + 1] << 8;
|
|
1644
|
-
}
|
|
1645
|
-
}
|
|
1646
|
-
|
|
1647
|
-
return val;
|
|
1648
|
-
}
|
|
1649
|
-
|
|
1650
|
-
Buffer.prototype.readUInt16LE = function(offset, noAssert) {
|
|
1651
|
-
return readUInt16(this, offset, false, noAssert);
|
|
1652
|
-
};
|
|
1653
|
-
|
|
1654
|
-
Buffer.prototype.readUInt16BE = function(offset, noAssert) {
|
|
1655
|
-
return readUInt16(this, offset, true, noAssert);
|
|
1656
|
-
};
|
|
1657
|
-
|
|
1658
|
-
function readUInt32(buffer, offset, isBigEndian, noAssert) {
|
|
1659
|
-
var val = 0;
|
|
1660
|
-
|
|
1661
|
-
if (!noAssert) {
|
|
1662
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
1663
|
-
'missing or invalid endian');
|
|
1664
|
-
|
|
1665
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
1666
|
-
'missing offset');
|
|
1667
|
-
|
|
1668
|
-
assert.ok(offset + 3 < buffer.length,
|
|
1669
|
-
'Trying to read beyond buffer length');
|
|
1670
|
-
}
|
|
1671
|
-
|
|
1672
|
-
if (offset >= buffer.length) return 0;
|
|
1673
|
-
|
|
1674
|
-
if (isBigEndian) {
|
|
1675
|
-
if (offset + 1 < buffer.length)
|
|
1676
|
-
val = buffer[offset + 1] << 16;
|
|
1677
|
-
if (offset + 2 < buffer.length)
|
|
1678
|
-
val |= buffer[offset + 2] << 8;
|
|
1679
|
-
if (offset + 3 < buffer.length)
|
|
1680
|
-
val |= buffer[offset + 3];
|
|
1681
|
-
val = val + (buffer[offset] << 24 >>> 0);
|
|
1682
|
-
} else {
|
|
1683
|
-
if (offset + 2 < buffer.length)
|
|
1684
|
-
val = buffer[offset + 2] << 16;
|
|
1685
|
-
if (offset + 1 < buffer.length)
|
|
1686
|
-
val |= buffer[offset + 1] << 8;
|
|
1687
|
-
val |= buffer[offset];
|
|
1688
|
-
if (offset + 3 < buffer.length)
|
|
1689
|
-
val = val + (buffer[offset + 3] << 24 >>> 0);
|
|
1690
|
-
}
|
|
1691
|
-
|
|
1692
|
-
return val;
|
|
1693
|
-
}
|
|
1694
|
-
|
|
1695
|
-
Buffer.prototype.readUInt32LE = function(offset, noAssert) {
|
|
1696
|
-
return readUInt32(this, offset, false, noAssert);
|
|
1697
|
-
};
|
|
1698
|
-
|
|
1699
|
-
Buffer.prototype.readUInt32BE = function(offset, noAssert) {
|
|
1700
|
-
return readUInt32(this, offset, true, noAssert);
|
|
1701
|
-
};
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
/*
|
|
1705
|
-
* Signed integer types, yay team! A reminder on how two's complement actually
|
|
1706
|
-
* works. The first bit is the signed bit, i.e. tells us whether or not the
|
|
1707
|
-
* number should be positive or negative. If the two's complement value is
|
|
1708
|
-
* positive, then we're done, as it's equivalent to the unsigned representation.
|
|
1709
|
-
*
|
|
1710
|
-
* Now if the number is positive, you're pretty much done, you can just leverage
|
|
1711
|
-
* the unsigned translations and return those. Unfortunately, negative numbers
|
|
1712
|
-
* aren't quite that straightforward.
|
|
1713
|
-
*
|
|
1714
|
-
* At first glance, one might be inclined to use the traditional formula to
|
|
1715
|
-
* translate binary numbers between the positive and negative values in two's
|
|
1716
|
-
* complement. (Though it doesn't quite work for the most negative value)
|
|
1717
|
-
* Mainly:
|
|
1718
|
-
* - invert all the bits
|
|
1719
|
-
* - add one to the result
|
|
1720
|
-
*
|
|
1721
|
-
* Of course, this doesn't quite work in Javascript. Take for example the value
|
|
1722
|
-
* of -128. This could be represented in 16 bits (big-endian) as 0xff80. But of
|
|
1723
|
-
* course, Javascript will do the following:
|
|
1724
|
-
*
|
|
1725
|
-
* > ~0xff80
|
|
1726
|
-
* -65409
|
|
1727
|
-
*
|
|
1728
|
-
* Whoh there, Javascript, that's not quite right. But wait, according to
|
|
1729
|
-
* Javascript that's perfectly correct. When Javascript ends up seeing the
|
|
1730
|
-
* constant 0xff80, it has no notion that it is actually a signed number. It
|
|
1731
|
-
* assumes that we've input the unsigned value 0xff80. Thus, when it does the
|
|
1732
|
-
* binary negation, it casts it into a signed value, (positive 0xff80). Then
|
|
1733
|
-
* when you perform binary negation on that, it turns it into a negative number.
|
|
1734
|
-
*
|
|
1735
|
-
* Instead, we're going to have to use the following general formula, that works
|
|
1736
|
-
* in a rather Javascript friendly way. I'm glad we don't support this kind of
|
|
1737
|
-
* weird numbering scheme in the kernel.
|
|
1738
|
-
*
|
|
1739
|
-
* (BIT-MAX - (unsigned)val + 1) * -1
|
|
1740
|
-
*
|
|
1741
|
-
* The astute observer, may think that this doesn't make sense for 8-bit numbers
|
|
1742
|
-
* (really it isn't necessary for them). However, when you get 16-bit numbers,
|
|
1743
|
-
* you do. Let's go back to our prior example and see how this will look:
|
|
1744
|
-
*
|
|
1745
|
-
* (0xffff - 0xff80 + 1) * -1
|
|
1746
|
-
* (0x007f + 1) * -1
|
|
1747
|
-
* (0x0080) * -1
|
|
1748
|
-
*/
|
|
1749
|
-
Buffer.prototype.readInt8 = function(offset, noAssert) {
|
|
1750
|
-
var buffer = this;
|
|
1751
|
-
var neg;
|
|
1752
|
-
|
|
1753
|
-
if (!noAssert) {
|
|
1754
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
1755
|
-
'missing offset');
|
|
1756
|
-
|
|
1757
|
-
assert.ok(offset < buffer.length,
|
|
1758
|
-
'Trying to read beyond buffer length');
|
|
1759
|
-
}
|
|
1760
|
-
|
|
1761
|
-
if (offset >= buffer.length) return;
|
|
1762
|
-
|
|
1763
|
-
neg = buffer[offset] & 0x80;
|
|
1764
|
-
if (!neg) {
|
|
1765
|
-
return (buffer[offset]);
|
|
1766
|
-
}
|
|
1767
|
-
|
|
1768
|
-
return ((0xff - buffer[offset] + 1) * -1);
|
|
1769
|
-
};
|
|
1770
|
-
|
|
1771
|
-
function readInt16(buffer, offset, isBigEndian, noAssert) {
|
|
1772
|
-
var neg, val;
|
|
1773
|
-
|
|
1774
|
-
if (!noAssert) {
|
|
1775
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
1776
|
-
'missing or invalid endian');
|
|
1777
|
-
|
|
1778
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
1779
|
-
'missing offset');
|
|
1780
|
-
|
|
1781
|
-
assert.ok(offset + 1 < buffer.length,
|
|
1782
|
-
'Trying to read beyond buffer length');
|
|
1783
|
-
}
|
|
1784
|
-
|
|
1785
|
-
val = readUInt16(buffer, offset, isBigEndian, noAssert);
|
|
1786
|
-
neg = val & 0x8000;
|
|
1787
|
-
if (!neg) {
|
|
1788
|
-
return val;
|
|
1789
|
-
}
|
|
1790
|
-
|
|
1791
|
-
return (0xffff - val + 1) * -1;
|
|
1792
|
-
}
|
|
1793
|
-
|
|
1794
|
-
Buffer.prototype.readInt16LE = function(offset, noAssert) {
|
|
1795
|
-
return readInt16(this, offset, false, noAssert);
|
|
1796
|
-
};
|
|
1797
|
-
|
|
1798
|
-
Buffer.prototype.readInt16BE = function(offset, noAssert) {
|
|
1799
|
-
return readInt16(this, offset, true, noAssert);
|
|
1800
|
-
};
|
|
1801
|
-
|
|
1802
|
-
function readInt32(buffer, offset, isBigEndian, noAssert) {
|
|
1803
|
-
var neg, val;
|
|
1804
|
-
|
|
1805
|
-
if (!noAssert) {
|
|
1806
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
1807
|
-
'missing or invalid endian');
|
|
1808
|
-
|
|
1809
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
1810
|
-
'missing offset');
|
|
1811
|
-
|
|
1812
|
-
assert.ok(offset + 3 < buffer.length,
|
|
1813
|
-
'Trying to read beyond buffer length');
|
|
1814
|
-
}
|
|
1815
|
-
|
|
1816
|
-
val = readUInt32(buffer, offset, isBigEndian, noAssert);
|
|
1817
|
-
neg = val & 0x80000000;
|
|
1818
|
-
if (!neg) {
|
|
1819
|
-
return (val);
|
|
1820
|
-
}
|
|
1821
|
-
|
|
1822
|
-
return (0xffffffff - val + 1) * -1;
|
|
1823
|
-
}
|
|
1824
|
-
|
|
1825
|
-
Buffer.prototype.readInt32LE = function(offset, noAssert) {
|
|
1826
|
-
return readInt32(this, offset, false, noAssert);
|
|
1827
|
-
};
|
|
1828
|
-
|
|
1829
|
-
Buffer.prototype.readInt32BE = function(offset, noAssert) {
|
|
1830
|
-
return readInt32(this, offset, true, noAssert);
|
|
1831
|
-
};
|
|
1832
|
-
|
|
1833
|
-
function readFloat(buffer, offset, isBigEndian, noAssert) {
|
|
1834
|
-
if (!noAssert) {
|
|
1835
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
1836
|
-
'missing or invalid endian');
|
|
1837
|
-
|
|
1838
|
-
assert.ok(offset + 3 < buffer.length,
|
|
1839
|
-
'Trying to read beyond buffer length');
|
|
1840
|
-
}
|
|
1841
|
-
|
|
1842
|
-
return require('./buffer_ieee754').readIEEE754(buffer, offset, isBigEndian,
|
|
1843
|
-
23, 4);
|
|
1844
|
-
}
|
|
1845
|
-
|
|
1846
|
-
Buffer.prototype.readFloatLE = function(offset, noAssert) {
|
|
1847
|
-
return readFloat(this, offset, false, noAssert);
|
|
1848
|
-
};
|
|
1849
|
-
|
|
1850
|
-
Buffer.prototype.readFloatBE = function(offset, noAssert) {
|
|
1851
|
-
return readFloat(this, offset, true, noAssert);
|
|
1852
|
-
};
|
|
1853
|
-
|
|
1854
|
-
function readDouble(buffer, offset, isBigEndian, noAssert) {
|
|
1855
|
-
if (!noAssert) {
|
|
1856
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
1857
|
-
'missing or invalid endian');
|
|
1858
|
-
|
|
1859
|
-
assert.ok(offset + 7 < buffer.length,
|
|
1860
|
-
'Trying to read beyond buffer length');
|
|
1861
|
-
}
|
|
1862
|
-
|
|
1863
|
-
return require('./buffer_ieee754').readIEEE754(buffer, offset, isBigEndian,
|
|
1864
|
-
52, 8);
|
|
1865
|
-
}
|
|
1866
|
-
|
|
1867
|
-
Buffer.prototype.readDoubleLE = function(offset, noAssert) {
|
|
1868
|
-
return readDouble(this, offset, false, noAssert);
|
|
1869
|
-
};
|
|
1870
|
-
|
|
1871
|
-
Buffer.prototype.readDoubleBE = function(offset, noAssert) {
|
|
1872
|
-
return readDouble(this, offset, true, noAssert);
|
|
1873
|
-
};
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
/*
|
|
1877
|
-
* We have to make sure that the value is a valid integer. This means that it is
|
|
1878
|
-
* non-negative. It has no fractional component and that it does not exceed the
|
|
1879
|
-
* maximum allowed value.
|
|
1880
|
-
*
|
|
1881
|
-
* value The number to check for validity
|
|
1882
|
-
*
|
|
1883
|
-
* max The maximum value
|
|
1884
|
-
*/
|
|
1885
|
-
function verifuint(value, max) {
|
|
1886
|
-
assert.ok(typeof (value) == 'number',
|
|
1887
|
-
'cannot write a non-number as a number');
|
|
1888
|
-
|
|
1889
|
-
assert.ok(value >= 0,
|
|
1890
|
-
'specified a negative value for writing an unsigned value');
|
|
1891
|
-
|
|
1892
|
-
assert.ok(value <= max, 'value is larger than maximum value for type');
|
|
1893
|
-
|
|
1894
|
-
assert.ok(Math.floor(value) === value, 'value has a fractional component');
|
|
1895
|
-
}
|
|
1896
|
-
|
|
1897
|
-
Buffer.prototype.writeUInt8 = function(value, offset, noAssert) {
|
|
1898
|
-
var buffer = this;
|
|
1899
|
-
|
|
1900
|
-
if (!noAssert) {
|
|
1901
|
-
assert.ok(value !== undefined && value !== null,
|
|
1902
|
-
'missing value');
|
|
1903
|
-
|
|
1904
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
1905
|
-
'missing offset');
|
|
1906
|
-
|
|
1907
|
-
assert.ok(offset < buffer.length,
|
|
1908
|
-
'trying to write beyond buffer length');
|
|
1909
|
-
|
|
1910
|
-
verifuint(value, 0xff);
|
|
1911
|
-
}
|
|
1912
|
-
|
|
1913
|
-
if (offset < buffer.length) {
|
|
1914
|
-
buffer[offset] = value;
|
|
1915
|
-
}
|
|
1916
|
-
};
|
|
1917
|
-
|
|
1918
|
-
function writeUInt16(buffer, value, offset, isBigEndian, noAssert) {
|
|
1919
|
-
if (!noAssert) {
|
|
1920
|
-
assert.ok(value !== undefined && value !== null,
|
|
1921
|
-
'missing value');
|
|
1922
|
-
|
|
1923
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
1924
|
-
'missing or invalid endian');
|
|
1925
|
-
|
|
1926
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
1927
|
-
'missing offset');
|
|
1928
|
-
|
|
1929
|
-
assert.ok(offset + 1 < buffer.length,
|
|
1930
|
-
'trying to write beyond buffer length');
|
|
1931
|
-
|
|
1932
|
-
verifuint(value, 0xffff);
|
|
1933
|
-
}
|
|
1934
|
-
|
|
1935
|
-
for (var i = 0; i < Math.min(buffer.length - offset, 2); i++) {
|
|
1936
|
-
buffer[offset + i] =
|
|
1937
|
-
(value & (0xff << (8 * (isBigEndian ? 1 - i : i)))) >>>
|
|
1938
|
-
(isBigEndian ? 1 - i : i) * 8;
|
|
1939
|
-
}
|
|
1940
|
-
|
|
1941
|
-
}
|
|
1942
|
-
|
|
1943
|
-
Buffer.prototype.writeUInt16LE = function(value, offset, noAssert) {
|
|
1944
|
-
writeUInt16(this, value, offset, false, noAssert);
|
|
1945
|
-
};
|
|
1946
|
-
|
|
1947
|
-
Buffer.prototype.writeUInt16BE = function(value, offset, noAssert) {
|
|
1948
|
-
writeUInt16(this, value, offset, true, noAssert);
|
|
1949
|
-
};
|
|
1950
|
-
|
|
1951
|
-
function writeUInt32(buffer, value, offset, isBigEndian, noAssert) {
|
|
1952
|
-
if (!noAssert) {
|
|
1953
|
-
assert.ok(value !== undefined && value !== null,
|
|
1954
|
-
'missing value');
|
|
1955
|
-
|
|
1956
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
1957
|
-
'missing or invalid endian');
|
|
1958
|
-
|
|
1959
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
1960
|
-
'missing offset');
|
|
1961
|
-
|
|
1962
|
-
assert.ok(offset + 3 < buffer.length,
|
|
1963
|
-
'trying to write beyond buffer length');
|
|
1964
|
-
|
|
1965
|
-
verifuint(value, 0xffffffff);
|
|
1966
|
-
}
|
|
1967
|
-
|
|
1968
|
-
for (var i = 0; i < Math.min(buffer.length - offset, 4); i++) {
|
|
1969
|
-
buffer[offset + i] =
|
|
1970
|
-
(value >>> (isBigEndian ? 3 - i : i) * 8) & 0xff;
|
|
1971
|
-
}
|
|
1972
|
-
}
|
|
1973
|
-
|
|
1974
|
-
Buffer.prototype.writeUInt32LE = function(value, offset, noAssert) {
|
|
1975
|
-
writeUInt32(this, value, offset, false, noAssert);
|
|
1976
|
-
};
|
|
1977
|
-
|
|
1978
|
-
Buffer.prototype.writeUInt32BE = function(value, offset, noAssert) {
|
|
1979
|
-
writeUInt32(this, value, offset, true, noAssert);
|
|
1980
|
-
};
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
/*
|
|
1984
|
-
* We now move onto our friends in the signed number category. Unlike unsigned
|
|
1985
|
-
* numbers, we're going to have to worry a bit more about how we put values into
|
|
1986
|
-
* arrays. Since we are only worrying about signed 32-bit values, we're in
|
|
1987
|
-
* slightly better shape. Unfortunately, we really can't do our favorite binary
|
|
1988
|
-
* & in this system. It really seems to do the wrong thing. For example:
|
|
1989
|
-
*
|
|
1990
|
-
* > -32 & 0xff
|
|
1991
|
-
* 224
|
|
1992
|
-
*
|
|
1993
|
-
* What's happening above is really: 0xe0 & 0xff = 0xe0. However, the results of
|
|
1994
|
-
* this aren't treated as a signed number. Ultimately a bad thing.
|
|
1995
|
-
*
|
|
1996
|
-
* What we're going to want to do is basically create the unsigned equivalent of
|
|
1997
|
-
* our representation and pass that off to the wuint* functions. To do that
|
|
1998
|
-
* we're going to do the following:
|
|
1999
|
-
*
|
|
2000
|
-
* - if the value is positive
|
|
2001
|
-
* we can pass it directly off to the equivalent wuint
|
|
2002
|
-
* - if the value is negative
|
|
2003
|
-
* we do the following computation:
|
|
2004
|
-
* mb + val + 1, where
|
|
2005
|
-
* mb is the maximum unsigned value in that byte size
|
|
2006
|
-
* val is the Javascript negative integer
|
|
2007
|
-
*
|
|
2008
|
-
*
|
|
2009
|
-
* As a concrete value, take -128. In signed 16 bits this would be 0xff80. If
|
|
2010
|
-
* you do out the computations:
|
|
2011
|
-
*
|
|
2012
|
-
* 0xffff - 128 + 1
|
|
2013
|
-
* 0xffff - 127
|
|
2014
|
-
* 0xff80
|
|
2015
|
-
*
|
|
2016
|
-
* You can then encode this value as the signed version. This is really rather
|
|
2017
|
-
* hacky, but it should work and get the job done which is our goal here.
|
|
2018
|
-
*/
|
|
2019
|
-
|
|
2020
|
-
/*
|
|
2021
|
-
* A series of checks to make sure we actually have a signed 32-bit number
|
|
2022
|
-
*/
|
|
2023
|
-
function verifsint(value, max, min) {
|
|
2024
|
-
assert.ok(typeof (value) == 'number',
|
|
2025
|
-
'cannot write a non-number as a number');
|
|
2026
|
-
|
|
2027
|
-
assert.ok(value <= max, 'value larger than maximum allowed value');
|
|
2028
|
-
|
|
2029
|
-
assert.ok(value >= min, 'value smaller than minimum allowed value');
|
|
2030
|
-
|
|
2031
|
-
assert.ok(Math.floor(value) === value, 'value has a fractional component');
|
|
2032
|
-
}
|
|
2033
|
-
|
|
2034
|
-
function verifIEEE754(value, max, min) {
|
|
2035
|
-
assert.ok(typeof (value) == 'number',
|
|
2036
|
-
'cannot write a non-number as a number');
|
|
2037
|
-
|
|
2038
|
-
assert.ok(value <= max, 'value larger than maximum allowed value');
|
|
2039
|
-
|
|
2040
|
-
assert.ok(value >= min, 'value smaller than minimum allowed value');
|
|
2041
|
-
}
|
|
2042
|
-
|
|
2043
|
-
Buffer.prototype.writeInt8 = function(value, offset, noAssert) {
|
|
2044
|
-
var buffer = this;
|
|
2045
|
-
|
|
2046
|
-
if (!noAssert) {
|
|
2047
|
-
assert.ok(value !== undefined && value !== null,
|
|
2048
|
-
'missing value');
|
|
2049
|
-
|
|
2050
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
2051
|
-
'missing offset');
|
|
2052
|
-
|
|
2053
|
-
assert.ok(offset < buffer.length,
|
|
2054
|
-
'Trying to write beyond buffer length');
|
|
2055
|
-
|
|
2056
|
-
verifsint(value, 0x7f, -0x80);
|
|
2057
|
-
}
|
|
2058
|
-
|
|
2059
|
-
if (value >= 0) {
|
|
2060
|
-
buffer.writeUInt8(value, offset, noAssert);
|
|
2061
|
-
} else {
|
|
2062
|
-
buffer.writeUInt8(0xff + value + 1, offset, noAssert);
|
|
2063
|
-
}
|
|
2064
|
-
};
|
|
2065
|
-
|
|
2066
|
-
function writeInt16(buffer, value, offset, isBigEndian, noAssert) {
|
|
2067
|
-
if (!noAssert) {
|
|
2068
|
-
assert.ok(value !== undefined && value !== null,
|
|
2069
|
-
'missing value');
|
|
2070
|
-
|
|
2071
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
2072
|
-
'missing or invalid endian');
|
|
2073
|
-
|
|
2074
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
2075
|
-
'missing offset');
|
|
2076
|
-
|
|
2077
|
-
assert.ok(offset + 1 < buffer.length,
|
|
2078
|
-
'Trying to write beyond buffer length');
|
|
2079
|
-
|
|
2080
|
-
verifsint(value, 0x7fff, -0x8000);
|
|
2081
|
-
}
|
|
2082
|
-
|
|
2083
|
-
if (value >= 0) {
|
|
2084
|
-
writeUInt16(buffer, value, offset, isBigEndian, noAssert);
|
|
2085
|
-
} else {
|
|
2086
|
-
writeUInt16(buffer, 0xffff + value + 1, offset, isBigEndian, noAssert);
|
|
2087
|
-
}
|
|
2088
|
-
}
|
|
2089
|
-
|
|
2090
|
-
Buffer.prototype.writeInt16LE = function(value, offset, noAssert) {
|
|
2091
|
-
writeInt16(this, value, offset, false, noAssert);
|
|
2092
|
-
};
|
|
2093
|
-
|
|
2094
|
-
Buffer.prototype.writeInt16BE = function(value, offset, noAssert) {
|
|
2095
|
-
writeInt16(this, value, offset, true, noAssert);
|
|
2096
|
-
};
|
|
2097
|
-
|
|
2098
|
-
function writeInt32(buffer, value, offset, isBigEndian, noAssert) {
|
|
2099
|
-
if (!noAssert) {
|
|
2100
|
-
assert.ok(value !== undefined && value !== null,
|
|
2101
|
-
'missing value');
|
|
2102
|
-
|
|
2103
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
2104
|
-
'missing or invalid endian');
|
|
2105
|
-
|
|
2106
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
2107
|
-
'missing offset');
|
|
2108
|
-
|
|
2109
|
-
assert.ok(offset + 3 < buffer.length,
|
|
2110
|
-
'Trying to write beyond buffer length');
|
|
2111
|
-
|
|
2112
|
-
verifsint(value, 0x7fffffff, -0x80000000);
|
|
2113
|
-
}
|
|
2114
|
-
|
|
2115
|
-
if (value >= 0) {
|
|
2116
|
-
writeUInt32(buffer, value, offset, isBigEndian, noAssert);
|
|
2117
|
-
} else {
|
|
2118
|
-
writeUInt32(buffer, 0xffffffff + value + 1, offset, isBigEndian, noAssert);
|
|
2119
|
-
}
|
|
2120
|
-
}
|
|
2121
|
-
|
|
2122
|
-
Buffer.prototype.writeInt32LE = function(value, offset, noAssert) {
|
|
2123
|
-
writeInt32(this, value, offset, false, noAssert);
|
|
2124
|
-
};
|
|
2125
|
-
|
|
2126
|
-
Buffer.prototype.writeInt32BE = function(value, offset, noAssert) {
|
|
2127
|
-
writeInt32(this, value, offset, true, noAssert);
|
|
2128
|
-
};
|
|
2129
|
-
|
|
2130
|
-
function writeFloat(buffer, value, offset, isBigEndian, noAssert) {
|
|
2131
|
-
if (!noAssert) {
|
|
2132
|
-
assert.ok(value !== undefined && value !== null,
|
|
2133
|
-
'missing value');
|
|
2134
|
-
|
|
2135
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
2136
|
-
'missing or invalid endian');
|
|
2137
|
-
|
|
2138
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
2139
|
-
'missing offset');
|
|
2140
|
-
|
|
2141
|
-
assert.ok(offset + 3 < buffer.length,
|
|
2142
|
-
'Trying to write beyond buffer length');
|
|
2143
|
-
|
|
2144
|
-
verifIEEE754(value, 3.4028234663852886e+38, -3.4028234663852886e+38);
|
|
2145
|
-
}
|
|
2146
|
-
|
|
2147
|
-
require('./buffer_ieee754').writeIEEE754(buffer, value, offset, isBigEndian,
|
|
2148
|
-
23, 4);
|
|
2149
|
-
}
|
|
2150
|
-
|
|
2151
|
-
Buffer.prototype.writeFloatLE = function(value, offset, noAssert) {
|
|
2152
|
-
writeFloat(this, value, offset, false, noAssert);
|
|
2153
|
-
};
|
|
2154
|
-
|
|
2155
|
-
Buffer.prototype.writeFloatBE = function(value, offset, noAssert) {
|
|
2156
|
-
writeFloat(this, value, offset, true, noAssert);
|
|
2157
|
-
};
|
|
2158
|
-
|
|
2159
|
-
function writeDouble(buffer, value, offset, isBigEndian, noAssert) {
|
|
2160
|
-
if (!noAssert) {
|
|
2161
|
-
assert.ok(value !== undefined && value !== null,
|
|
2162
|
-
'missing value');
|
|
2163
|
-
|
|
2164
|
-
assert.ok(typeof (isBigEndian) === 'boolean',
|
|
2165
|
-
'missing or invalid endian');
|
|
2166
|
-
|
|
2167
|
-
assert.ok(offset !== undefined && offset !== null,
|
|
2168
|
-
'missing offset');
|
|
2169
|
-
|
|
2170
|
-
assert.ok(offset + 7 < buffer.length,
|
|
2171
|
-
'Trying to write beyond buffer length');
|
|
2172
|
-
|
|
2173
|
-
verifIEEE754(value, 1.7976931348623157E+308, -1.7976931348623157E+308);
|
|
2174
|
-
}
|
|
2175
|
-
|
|
2176
|
-
require('./buffer_ieee754').writeIEEE754(buffer, value, offset, isBigEndian,
|
|
2177
|
-
52, 8);
|
|
2178
|
-
}
|
|
2179
|
-
|
|
2180
|
-
Buffer.prototype.writeDoubleLE = function(value, offset, noAssert) {
|
|
2181
|
-
writeDouble(this, value, offset, false, noAssert);
|
|
2182
|
-
};
|
|
2183
|
-
|
|
2184
|
-
Buffer.prototype.writeDoubleBE = function(value, offset, noAssert) {
|
|
2185
|
-
writeDouble(this, value, offset, true, noAssert);
|
|
2186
|
-
};
|
|
2187
|
-
|
|
2188
|
-
},{"./buffer_ieee754":1,"assert":6,"base64-js":4}],"buffer-browserify":[function(require,module,exports){
|
|
2189
|
-
module.exports=require('q9TxCC');
|
|
2190
|
-
},{}],4:[function(require,module,exports){
|
|
2191
|
-
(function (exports) {
|
|
2192
|
-
'use strict';
|
|
2193
|
-
|
|
2194
|
-
var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
2195
|
-
|
|
2196
|
-
function b64ToByteArray(b64) {
|
|
2197
|
-
var i, j, l, tmp, placeHolders, arr;
|
|
2198
|
-
|
|
2199
|
-
if (b64.length % 4 > 0) {
|
|
2200
|
-
throw 'Invalid string. Length must be a multiple of 4';
|
|
2201
|
-
}
|
|
2202
|
-
|
|
2203
|
-
// the number of equal signs (place holders)
|
|
2204
|
-
// if there are two placeholders, than the two characters before it
|
|
2205
|
-
// represent one byte
|
|
2206
|
-
// if there is only one, then the three characters before it represent 2 bytes
|
|
2207
|
-
// this is just a cheap hack to not do indexOf twice
|
|
2208
|
-
placeHolders = b64.indexOf('=');
|
|
2209
|
-
placeHolders = placeHolders > 0 ? b64.length - placeHolders : 0;
|
|
2210
|
-
|
|
2211
|
-
// base64 is 4/3 + up to two characters of the original data
|
|
2212
|
-
arr = [];//new Uint8Array(b64.length * 3 / 4 - placeHolders);
|
|
2213
|
-
|
|
2214
|
-
// if there are placeholders, only get up to the last complete 4 chars
|
|
2215
|
-
l = placeHolders > 0 ? b64.length - 4 : b64.length;
|
|
2216
|
-
|
|
2217
|
-
for (i = 0, j = 0; i < l; i += 4, j += 3) {
|
|
2218
|
-
tmp = (lookup.indexOf(b64[i]) << 18) | (lookup.indexOf(b64[i + 1]) << 12) | (lookup.indexOf(b64[i + 2]) << 6) | lookup.indexOf(b64[i + 3]);
|
|
2219
|
-
arr.push((tmp & 0xFF0000) >> 16);
|
|
2220
|
-
arr.push((tmp & 0xFF00) >> 8);
|
|
2221
|
-
arr.push(tmp & 0xFF);
|
|
2222
|
-
}
|
|
2223
|
-
|
|
2224
|
-
if (placeHolders === 2) {
|
|
2225
|
-
tmp = (lookup.indexOf(b64[i]) << 2) | (lookup.indexOf(b64[i + 1]) >> 4);
|
|
2226
|
-
arr.push(tmp & 0xFF);
|
|
2227
|
-
} else if (placeHolders === 1) {
|
|
2228
|
-
tmp = (lookup.indexOf(b64[i]) << 10) | (lookup.indexOf(b64[i + 1]) << 4) | (lookup.indexOf(b64[i + 2]) >> 2);
|
|
2229
|
-
arr.push((tmp >> 8) & 0xFF);
|
|
2230
|
-
arr.push(tmp & 0xFF);
|
|
2231
|
-
}
|
|
2232
|
-
|
|
2233
|
-
return arr;
|
|
2234
|
-
}
|
|
2235
|
-
|
|
2236
|
-
function uint8ToBase64(uint8) {
|
|
2237
|
-
var i,
|
|
2238
|
-
extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes
|
|
2239
|
-
output = "",
|
|
2240
|
-
temp, length;
|
|
2241
|
-
|
|
2242
|
-
function tripletToBase64 (num) {
|
|
2243
|
-
return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];
|
|
2244
|
-
};
|
|
2245
|
-
|
|
2246
|
-
// go through the array every three bytes, we'll deal with trailing stuff later
|
|
2247
|
-
for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {
|
|
2248
|
-
temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);
|
|
2249
|
-
output += tripletToBase64(temp);
|
|
2250
|
-
}
|
|
2251
|
-
|
|
2252
|
-
// pad the end with zeros, but make sure to not forget the extra bytes
|
|
2253
|
-
switch (extraBytes) {
|
|
2254
|
-
case 1:
|
|
2255
|
-
temp = uint8[uint8.length - 1];
|
|
2256
|
-
output += lookup[temp >> 2];
|
|
2257
|
-
output += lookup[(temp << 4) & 0x3F];
|
|
2258
|
-
output += '==';
|
|
2259
|
-
break;
|
|
2260
|
-
case 2:
|
|
2261
|
-
temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1]);
|
|
2262
|
-
output += lookup[temp >> 10];
|
|
2263
|
-
output += lookup[(temp >> 4) & 0x3F];
|
|
2264
|
-
output += lookup[(temp << 2) & 0x3F];
|
|
2265
|
-
output += '=';
|
|
2266
|
-
break;
|
|
2267
|
-
}
|
|
2268
|
-
|
|
2269
|
-
return output;
|
|
2270
|
-
}
|
|
2271
|
-
|
|
2272
|
-
module.exports.toByteArray = b64ToByteArray;
|
|
2273
|
-
module.exports.fromByteArray = uint8ToBase64;
|
|
2274
|
-
}());
|
|
2275
|
-
|
|
2276
|
-
},{}],5:[function(require,module,exports){
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
//
|
|
2280
|
-
// The shims in this file are not fully implemented shims for the ES5
|
|
2281
|
-
// features, but do work for the particular usecases there is in
|
|
2282
|
-
// the other modules.
|
|
2283
|
-
//
|
|
2284
|
-
|
|
2285
|
-
var toString = Object.prototype.toString;
|
|
2286
|
-
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
2287
|
-
|
|
2288
|
-
// Array.isArray is supported in IE9
|
|
2289
|
-
function isArray(xs) {
|
|
2290
|
-
return toString.call(xs) === '[object Array]';
|
|
2291
|
-
}
|
|
2292
|
-
exports.isArray = typeof Array.isArray === 'function' ? Array.isArray : isArray;
|
|
2293
|
-
|
|
2294
|
-
// Array.prototype.indexOf is supported in IE9
|
|
2295
|
-
exports.indexOf = function indexOf(xs, x) {
|
|
2296
|
-
if (xs.indexOf) return xs.indexOf(x);
|
|
2297
|
-
for (var i = 0; i < xs.length; i++) {
|
|
2298
|
-
if (x === xs[i]) return i;
|
|
2299
|
-
}
|
|
2300
|
-
return -1;
|
|
2301
|
-
};
|
|
2302
|
-
|
|
2303
|
-
// Array.prototype.filter is supported in IE9
|
|
2304
|
-
exports.filter = function filter(xs, fn) {
|
|
2305
|
-
if (xs.filter) return xs.filter(fn);
|
|
2306
|
-
var res = [];
|
|
2307
|
-
for (var i = 0; i < xs.length; i++) {
|
|
2308
|
-
if (fn(xs[i], i, xs)) res.push(xs[i]);
|
|
2309
|
-
}
|
|
2310
|
-
return res;
|
|
2311
|
-
};
|
|
2312
|
-
|
|
2313
|
-
// Array.prototype.forEach is supported in IE9
|
|
2314
|
-
exports.forEach = function forEach(xs, fn, self) {
|
|
2315
|
-
if (xs.forEach) return xs.forEach(fn, self);
|
|
2316
|
-
for (var i = 0; i < xs.length; i++) {
|
|
2317
|
-
fn.call(self, xs[i], i, xs);
|
|
2318
|
-
}
|
|
2319
|
-
};
|
|
2320
|
-
|
|
2321
|
-
// Array.prototype.map is supported in IE9
|
|
2322
|
-
exports.map = function map(xs, fn) {
|
|
2323
|
-
if (xs.map) return xs.map(fn);
|
|
2324
|
-
var out = new Array(xs.length);
|
|
2325
|
-
for (var i = 0; i < xs.length; i++) {
|
|
2326
|
-
out[i] = fn(xs[i], i, xs);
|
|
2327
|
-
}
|
|
2328
|
-
return out;
|
|
2329
|
-
};
|
|
2330
|
-
|
|
2331
|
-
// Array.prototype.reduce is supported in IE9
|
|
2332
|
-
exports.reduce = function reduce(array, callback, opt_initialValue) {
|
|
2333
|
-
if (array.reduce) return array.reduce(callback, opt_initialValue);
|
|
2334
|
-
var value, isValueSet = false;
|
|
2335
|
-
|
|
2336
|
-
if (2 < arguments.length) {
|
|
2337
|
-
value = opt_initialValue;
|
|
2338
|
-
isValueSet = true;
|
|
2339
|
-
}
|
|
2340
|
-
for (var i = 0, l = array.length; l > i; ++i) {
|
|
2341
|
-
if (array.hasOwnProperty(i)) {
|
|
2342
|
-
if (isValueSet) {
|
|
2343
|
-
value = callback(value, array[i], i, array);
|
|
2344
|
-
}
|
|
2345
|
-
else {
|
|
2346
|
-
value = array[i];
|
|
2347
|
-
isValueSet = true;
|
|
2348
|
-
}
|
|
2349
|
-
}
|
|
2350
|
-
}
|
|
2351
|
-
|
|
2352
|
-
return value;
|
|
2353
|
-
};
|
|
2354
|
-
|
|
2355
|
-
// String.prototype.substr - negative index don't work in IE8
|
|
2356
|
-
if ('ab'.substr(-1) !== 'b') {
|
|
2357
|
-
exports.substr = function (str, start, length) {
|
|
2358
|
-
// did we get a negative start, calculate how much it is from the beginning of the string
|
|
2359
|
-
if (start < 0) start = str.length + start;
|
|
2360
|
-
|
|
2361
|
-
// call the original function
|
|
2362
|
-
return str.substr(start, length);
|
|
2363
|
-
};
|
|
2364
|
-
} else {
|
|
2365
|
-
exports.substr = function (str, start, length) {
|
|
2366
|
-
return str.substr(start, length);
|
|
2367
|
-
};
|
|
2368
|
-
}
|
|
2369
|
-
|
|
2370
|
-
// String.prototype.trim is supported in IE9
|
|
2371
|
-
exports.trim = function (str) {
|
|
2372
|
-
if (str.trim) return str.trim();
|
|
2373
|
-
return str.replace(/^\s+|\s+$/g, '');
|
|
2374
|
-
};
|
|
2375
|
-
|
|
2376
|
-
// Function.prototype.bind is supported in IE9
|
|
2377
|
-
exports.bind = function () {
|
|
2378
|
-
var args = Array.prototype.slice.call(arguments);
|
|
2379
|
-
var fn = args.shift();
|
|
2380
|
-
if (fn.bind) return fn.bind.apply(fn, args);
|
|
2381
|
-
var self = args.shift();
|
|
2382
|
-
return function () {
|
|
2383
|
-
fn.apply(self, args.concat([Array.prototype.slice.call(arguments)]));
|
|
2384
|
-
};
|
|
2385
|
-
};
|
|
2386
|
-
|
|
2387
|
-
// Object.create is supported in IE9
|
|
2388
|
-
function create(prototype, properties) {
|
|
2389
|
-
var object;
|
|
2390
|
-
if (prototype === null) {
|
|
2391
|
-
object = { '__proto__' : null };
|
|
2392
|
-
}
|
|
2393
|
-
else {
|
|
2394
|
-
if (typeof prototype !== 'object') {
|
|
2395
|
-
throw new TypeError(
|
|
2396
|
-
'typeof prototype[' + (typeof prototype) + '] != \'object\''
|
|
2397
|
-
);
|
|
2398
|
-
}
|
|
2399
|
-
var Type = function () {};
|
|
2400
|
-
Type.prototype = prototype;
|
|
2401
|
-
object = new Type();
|
|
2402
|
-
object.__proto__ = prototype;
|
|
2403
|
-
}
|
|
2404
|
-
if (typeof properties !== 'undefined' && Object.defineProperties) {
|
|
2405
|
-
Object.defineProperties(object, properties);
|
|
2406
|
-
}
|
|
2407
|
-
return object;
|
|
2408
|
-
}
|
|
2409
|
-
exports.create = typeof Object.create === 'function' ? Object.create : create;
|
|
2410
|
-
|
|
2411
|
-
// Object.keys and Object.getOwnPropertyNames is supported in IE9 however
|
|
2412
|
-
// they do show a description and number property on Error objects
|
|
2413
|
-
function notObject(object) {
|
|
2414
|
-
return ((typeof object != "object" && typeof object != "function") || object === null);
|
|
2415
|
-
}
|
|
2416
|
-
|
|
2417
|
-
function keysShim(object) {
|
|
2418
|
-
if (notObject(object)) {
|
|
2419
|
-
throw new TypeError("Object.keys called on a non-object");
|
|
2420
|
-
}
|
|
2421
|
-
|
|
2422
|
-
var result = [];
|
|
2423
|
-
for (var name in object) {
|
|
2424
|
-
if (hasOwnProperty.call(object, name)) {
|
|
2425
|
-
result.push(name);
|
|
2426
|
-
}
|
|
2427
|
-
}
|
|
2428
|
-
return result;
|
|
2429
|
-
}
|
|
2430
|
-
|
|
2431
|
-
// getOwnPropertyNames is almost the same as Object.keys one key feature
|
|
2432
|
-
// is that it returns hidden properties, since that can't be implemented,
|
|
2433
|
-
// this feature gets reduced so it just shows the length property on arrays
|
|
2434
|
-
function propertyShim(object) {
|
|
2435
|
-
if (notObject(object)) {
|
|
2436
|
-
throw new TypeError("Object.getOwnPropertyNames called on a non-object");
|
|
2437
|
-
}
|
|
2438
|
-
|
|
2439
|
-
var result = keysShim(object);
|
|
2440
|
-
if (exports.isArray(object) && exports.indexOf(object, 'length') === -1) {
|
|
2441
|
-
result.push('length');
|
|
2442
|
-
}
|
|
2443
|
-
return result;
|
|
2444
|
-
}
|
|
2445
|
-
|
|
2446
|
-
var keys = typeof Object.keys === 'function' ? Object.keys : keysShim;
|
|
2447
|
-
var getOwnPropertyNames = typeof Object.getOwnPropertyNames === 'function' ?
|
|
2448
|
-
Object.getOwnPropertyNames : propertyShim;
|
|
2449
|
-
|
|
2450
|
-
if (new Error().hasOwnProperty('description')) {
|
|
2451
|
-
var ERROR_PROPERTY_FILTER = function (obj, array) {
|
|
2452
|
-
if (toString.call(obj) === '[object Error]') {
|
|
2453
|
-
array = exports.filter(array, function (name) {
|
|
2454
|
-
return name !== 'description' && name !== 'number' && name !== 'message';
|
|
2455
|
-
});
|
|
2456
|
-
}
|
|
2457
|
-
return array;
|
|
2458
|
-
};
|
|
2459
|
-
|
|
2460
|
-
exports.keys = function (object) {
|
|
2461
|
-
return ERROR_PROPERTY_FILTER(object, keys(object));
|
|
2462
|
-
};
|
|
2463
|
-
exports.getOwnPropertyNames = function (object) {
|
|
2464
|
-
return ERROR_PROPERTY_FILTER(object, getOwnPropertyNames(object));
|
|
2465
|
-
};
|
|
2466
|
-
} else {
|
|
2467
|
-
exports.keys = keys;
|
|
2468
|
-
exports.getOwnPropertyNames = getOwnPropertyNames;
|
|
2469
|
-
}
|
|
2470
|
-
|
|
2471
|
-
// Object.getOwnPropertyDescriptor - supported in IE8 but only on dom elements
|
|
2472
|
-
function valueObject(value, key) {
|
|
2473
|
-
return { value: value[key] };
|
|
2474
|
-
}
|
|
2475
|
-
|
|
2476
|
-
if (typeof Object.getOwnPropertyDescriptor === 'function') {
|
|
2477
|
-
try {
|
|
2478
|
-
Object.getOwnPropertyDescriptor({'a': 1}, 'a');
|
|
2479
|
-
exports.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
2480
|
-
} catch (e) {
|
|
2481
|
-
// IE8 dom element issue - use a try catch and default to valueObject
|
|
2482
|
-
exports.getOwnPropertyDescriptor = function (value, key) {
|
|
2483
|
-
try {
|
|
2484
|
-
return Object.getOwnPropertyDescriptor(value, key);
|
|
2485
|
-
} catch (e) {
|
|
2486
|
-
return valueObject(value, key);
|
|
2487
|
-
}
|
|
2488
|
-
};
|
|
2489
|
-
}
|
|
2490
|
-
} else {
|
|
2491
|
-
exports.getOwnPropertyDescriptor = valueObject;
|
|
2492
|
-
}
|
|
2493
|
-
|
|
2494
|
-
},{}],6:[function(require,module,exports){
|
|
2495
|
-
// Copyright Joyent, Inc. and other Node contributors.
|
|
2496
|
-
//
|
|
2497
|
-
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
2498
|
-
// copy of this software and associated documentation files (the
|
|
2499
|
-
// "Software"), to deal in the Software without restriction, including
|
|
2500
|
-
// without limitation the rights to use, copy, modify, merge, publish,
|
|
2501
|
-
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
2502
|
-
// persons to whom the Software is furnished to do so, subject to the
|
|
2503
|
-
// following conditions:
|
|
2504
|
-
//
|
|
2505
|
-
// The above copyright notice and this permission notice shall be included
|
|
2506
|
-
// in all copies or substantial portions of the Software.
|
|
2507
|
-
//
|
|
2508
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
2509
|
-
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
2510
|
-
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
2511
|
-
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
2512
|
-
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
2513
|
-
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
2514
|
-
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
2515
|
-
|
|
2516
|
-
// UTILITY
|
|
2517
|
-
var util = require('util');
|
|
2518
|
-
var shims = require('_shims');
|
|
2519
|
-
var pSlice = Array.prototype.slice;
|
|
2520
|
-
|
|
2521
|
-
// 1. The assert module provides functions that throw
|
|
2522
|
-
// AssertionError's when particular conditions are not met. The
|
|
2523
|
-
// assert module must conform to the following interface.
|
|
2524
|
-
|
|
2525
|
-
var assert = module.exports = ok;
|
|
2526
|
-
|
|
2527
|
-
// 2. The AssertionError is defined in assert.
|
|
2528
|
-
// new assert.AssertionError({ message: message,
|
|
2529
|
-
// actual: actual,
|
|
2530
|
-
// expected: expected })
|
|
2531
|
-
|
|
2532
|
-
assert.AssertionError = function AssertionError(options) {
|
|
2533
|
-
this.name = 'AssertionError';
|
|
2534
|
-
this.actual = options.actual;
|
|
2535
|
-
this.expected = options.expected;
|
|
2536
|
-
this.operator = options.operator;
|
|
2537
|
-
this.message = options.message || getMessage(this);
|
|
2538
|
-
};
|
|
2539
|
-
|
|
2540
|
-
// assert.AssertionError instanceof Error
|
|
2541
|
-
util.inherits(assert.AssertionError, Error);
|
|
2542
|
-
|
|
2543
|
-
function replacer(key, value) {
|
|
2544
|
-
if (util.isUndefined(value)) {
|
|
2545
|
-
return '' + value;
|
|
2546
|
-
}
|
|
2547
|
-
if (util.isNumber(value) && (isNaN(value) || !isFinite(value))) {
|
|
2548
|
-
return value.toString();
|
|
2549
|
-
}
|
|
2550
|
-
if (util.isFunction(value) || util.isRegExp(value)) {
|
|
2551
|
-
return value.toString();
|
|
2552
|
-
}
|
|
2553
|
-
return value;
|
|
2554
|
-
}
|
|
2555
|
-
|
|
2556
|
-
function truncate(s, n) {
|
|
2557
|
-
if (util.isString(s)) {
|
|
2558
|
-
return s.length < n ? s : s.slice(0, n);
|
|
2559
|
-
} else {
|
|
2560
|
-
return s;
|
|
2561
|
-
}
|
|
2562
|
-
}
|
|
2563
|
-
|
|
2564
|
-
function getMessage(self) {
|
|
2565
|
-
return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' +
|
|
2566
|
-
self.operator + ' ' +
|
|
2567
|
-
truncate(JSON.stringify(self.expected, replacer), 128);
|
|
2568
|
-
}
|
|
2569
|
-
|
|
2570
|
-
// At present only the three keys mentioned above are used and
|
|
2571
|
-
// understood by the spec. Implementations or sub modules can pass
|
|
2572
|
-
// other keys to the AssertionError's constructor - they will be
|
|
2573
|
-
// ignored.
|
|
2574
|
-
|
|
2575
|
-
// 3. All of the following functions must throw an AssertionError
|
|
2576
|
-
// when a corresponding condition is not met, with a message that
|
|
2577
|
-
// may be undefined if not provided. All assertion methods provide
|
|
2578
|
-
// both the actual and expected values to the assertion error for
|
|
2579
|
-
// display purposes.
|
|
2580
|
-
|
|
2581
|
-
function fail(actual, expected, message, operator, stackStartFunction) {
|
|
2582
|
-
throw new assert.AssertionError({
|
|
2583
|
-
message: message,
|
|
2584
|
-
actual: actual,
|
|
2585
|
-
expected: expected,
|
|
2586
|
-
operator: operator,
|
|
2587
|
-
stackStartFunction: stackStartFunction
|
|
2588
|
-
});
|
|
2589
|
-
}
|
|
2590
|
-
|
|
2591
|
-
// EXTENSION! allows for well behaved errors defined elsewhere.
|
|
2592
|
-
assert.fail = fail;
|
|
2593
|
-
|
|
2594
|
-
// 4. Pure assertion tests whether a value is truthy, as determined
|
|
2595
|
-
// by !!guard.
|
|
2596
|
-
// assert.ok(guard, message_opt);
|
|
2597
|
-
// This statement is equivalent to assert.equal(true, !!guard,
|
|
2598
|
-
// message_opt);. To test strictly for the value true, use
|
|
2599
|
-
// assert.strictEqual(true, guard, message_opt);.
|
|
2600
|
-
|
|
2601
|
-
function ok(value, message) {
|
|
2602
|
-
if (!value) fail(value, true, message, '==', assert.ok);
|
|
2603
|
-
}
|
|
2604
|
-
assert.ok = ok;
|
|
2605
|
-
|
|
2606
|
-
// 5. The equality assertion tests shallow, coercive equality with
|
|
2607
|
-
// ==.
|
|
2608
|
-
// assert.equal(actual, expected, message_opt);
|
|
2609
|
-
|
|
2610
|
-
assert.equal = function equal(actual, expected, message) {
|
|
2611
|
-
if (actual != expected) fail(actual, expected, message, '==', assert.equal);
|
|
2612
|
-
};
|
|
2613
|
-
|
|
2614
|
-
// 6. The non-equality assertion tests for whether two objects are not equal
|
|
2615
|
-
// with != assert.notEqual(actual, expected, message_opt);
|
|
2616
|
-
|
|
2617
|
-
assert.notEqual = function notEqual(actual, expected, message) {
|
|
2618
|
-
if (actual == expected) {
|
|
2619
|
-
fail(actual, expected, message, '!=', assert.notEqual);
|
|
2620
|
-
}
|
|
2621
|
-
};
|
|
2622
|
-
|
|
2623
|
-
// 7. The equivalence assertion tests a deep equality relation.
|
|
2624
|
-
// assert.deepEqual(actual, expected, message_opt);
|
|
2625
|
-
|
|
2626
|
-
assert.deepEqual = function deepEqual(actual, expected, message) {
|
|
2627
|
-
if (!_deepEqual(actual, expected)) {
|
|
2628
|
-
fail(actual, expected, message, 'deepEqual', assert.deepEqual);
|
|
2629
|
-
}
|
|
2630
|
-
};
|
|
2631
|
-
|
|
2632
|
-
function _deepEqual(actual, expected) {
|
|
2633
|
-
// 7.1. All identical values are equivalent, as determined by ===.
|
|
2634
|
-
if (actual === expected) {
|
|
2635
|
-
return true;
|
|
2636
|
-
|
|
2637
|
-
} else if (util.isBuffer(actual) && util.isBuffer(expected)) {
|
|
2638
|
-
if (actual.length != expected.length) return false;
|
|
2639
|
-
|
|
2640
|
-
for (var i = 0; i < actual.length; i++) {
|
|
2641
|
-
if (actual[i] !== expected[i]) return false;
|
|
2642
|
-
}
|
|
2643
|
-
|
|
2644
|
-
return true;
|
|
2645
|
-
|
|
2646
|
-
// 7.2. If the expected value is a Date object, the actual value is
|
|
2647
|
-
// equivalent if it is also a Date object that refers to the same time.
|
|
2648
|
-
} else if (util.isDate(actual) && util.isDate(expected)) {
|
|
2649
|
-
return actual.getTime() === expected.getTime();
|
|
2650
|
-
|
|
2651
|
-
// 7.3 If the expected value is a RegExp object, the actual value is
|
|
2652
|
-
// equivalent if it is also a RegExp object with the same source and
|
|
2653
|
-
// properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
|
|
2654
|
-
} else if (util.isRegExp(actual) && util.isRegExp(expected)) {
|
|
2655
|
-
return actual.source === expected.source &&
|
|
2656
|
-
actual.global === expected.global &&
|
|
2657
|
-
actual.multiline === expected.multiline &&
|
|
2658
|
-
actual.lastIndex === expected.lastIndex &&
|
|
2659
|
-
actual.ignoreCase === expected.ignoreCase;
|
|
2660
|
-
|
|
2661
|
-
// 7.4. Other pairs that do not both pass typeof value == 'object',
|
|
2662
|
-
// equivalence is determined by ==.
|
|
2663
|
-
} else if (!util.isObject(actual) && !util.isObject(expected)) {
|
|
2664
|
-
return actual == expected;
|
|
2665
|
-
|
|
2666
|
-
// 7.5 For all other Object pairs, including Array objects, equivalence is
|
|
2667
|
-
// determined by having the same number of owned properties (as verified
|
|
2668
|
-
// with Object.prototype.hasOwnProperty.call), the same set of keys
|
|
2669
|
-
// (although not necessarily the same order), equivalent values for every
|
|
2670
|
-
// corresponding key, and an identical 'prototype' property. Note: this
|
|
2671
|
-
// accounts for both named and indexed properties on Arrays.
|
|
2672
|
-
} else {
|
|
2673
|
-
return objEquiv(actual, expected);
|
|
2674
|
-
}
|
|
2675
|
-
}
|
|
2676
|
-
|
|
2677
|
-
function isArguments(object) {
|
|
2678
|
-
return Object.prototype.toString.call(object) == '[object Arguments]';
|
|
2679
|
-
}
|
|
2680
|
-
|
|
2681
|
-
function objEquiv(a, b) {
|
|
2682
|
-
if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
|
|
2683
|
-
return false;
|
|
2684
|
-
// an identical 'prototype' property.
|
|
2685
|
-
if (a.prototype !== b.prototype) return false;
|
|
2686
|
-
//~~~I've managed to break Object.keys through screwy arguments passing.
|
|
2687
|
-
// Converting to array solves the problem.
|
|
2688
|
-
if (isArguments(a)) {
|
|
2689
|
-
if (!isArguments(b)) {
|
|
2690
|
-
return false;
|
|
2691
|
-
}
|
|
2692
|
-
a = pSlice.call(a);
|
|
2693
|
-
b = pSlice.call(b);
|
|
2694
|
-
return _deepEqual(a, b);
|
|
2695
|
-
}
|
|
2696
|
-
try {
|
|
2697
|
-
var ka = shims.keys(a),
|
|
2698
|
-
kb = shims.keys(b),
|
|
2699
|
-
key, i;
|
|
2700
|
-
} catch (e) {//happens when one is a string literal and the other isn't
|
|
2701
|
-
return false;
|
|
2702
|
-
}
|
|
2703
|
-
// having the same number of owned properties (keys incorporates
|
|
2704
|
-
// hasOwnProperty)
|
|
2705
|
-
if (ka.length != kb.length)
|
|
2706
|
-
return false;
|
|
2707
|
-
//the same set of keys (although not necessarily the same order),
|
|
2708
|
-
ka.sort();
|
|
2709
|
-
kb.sort();
|
|
2710
|
-
//~~~cheap key test
|
|
2711
|
-
for (i = ka.length - 1; i >= 0; i--) {
|
|
2712
|
-
if (ka[i] != kb[i])
|
|
2713
|
-
return false;
|
|
2714
|
-
}
|
|
2715
|
-
//equivalent values for every corresponding key, and
|
|
2716
|
-
//~~~possibly expensive deep test
|
|
2717
|
-
for (i = ka.length - 1; i >= 0; i--) {
|
|
2718
|
-
key = ka[i];
|
|
2719
|
-
if (!_deepEqual(a[key], b[key])) return false;
|
|
2720
|
-
}
|
|
2721
|
-
return true;
|
|
2722
|
-
}
|
|
2723
|
-
|
|
2724
|
-
// 8. The non-equivalence assertion tests for any deep inequality.
|
|
2725
|
-
// assert.notDeepEqual(actual, expected, message_opt);
|
|
2726
|
-
|
|
2727
|
-
assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
|
|
2728
|
-
if (_deepEqual(actual, expected)) {
|
|
2729
|
-
fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
|
|
2730
|
-
}
|
|
2731
|
-
};
|
|
2732
|
-
|
|
2733
|
-
// 9. The strict equality assertion tests strict equality, as determined by ===.
|
|
2734
|
-
// assert.strictEqual(actual, expected, message_opt);
|
|
2735
|
-
|
|
2736
|
-
assert.strictEqual = function strictEqual(actual, expected, message) {
|
|
2737
|
-
if (actual !== expected) {
|
|
2738
|
-
fail(actual, expected, message, '===', assert.strictEqual);
|
|
2739
|
-
}
|
|
2740
|
-
};
|
|
2741
|
-
|
|
2742
|
-
// 10. The strict non-equality assertion tests for strict inequality, as
|
|
2743
|
-
// determined by !==. assert.notStrictEqual(actual, expected, message_opt);
|
|
2744
|
-
|
|
2745
|
-
assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
|
|
2746
|
-
if (actual === expected) {
|
|
2747
|
-
fail(actual, expected, message, '!==', assert.notStrictEqual);
|
|
2748
|
-
}
|
|
2749
|
-
};
|
|
2750
|
-
|
|
2751
|
-
function expectedException(actual, expected) {
|
|
2752
|
-
if (!actual || !expected) {
|
|
2753
|
-
return false;
|
|
2754
|
-
}
|
|
2755
|
-
|
|
2756
|
-
if (Object.prototype.toString.call(expected) == '[object RegExp]') {
|
|
2757
|
-
return expected.test(actual);
|
|
2758
|
-
} else if (actual instanceof expected) {
|
|
2759
|
-
return true;
|
|
2760
|
-
} else if (expected.call({}, actual) === true) {
|
|
2761
|
-
return true;
|
|
2762
|
-
}
|
|
2763
|
-
|
|
2764
|
-
return false;
|
|
2765
|
-
}
|
|
2766
|
-
|
|
2767
|
-
function _throws(shouldThrow, block, expected, message) {
|
|
2768
|
-
var actual;
|
|
2769
|
-
|
|
2770
|
-
if (util.isString(expected)) {
|
|
2771
|
-
message = expected;
|
|
2772
|
-
expected = null;
|
|
2773
|
-
}
|
|
2774
|
-
|
|
2775
|
-
try {
|
|
2776
|
-
block();
|
|
2777
|
-
} catch (e) {
|
|
2778
|
-
actual = e;
|
|
2779
|
-
}
|
|
2780
|
-
|
|
2781
|
-
message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
|
|
2782
|
-
(message ? ' ' + message : '.');
|
|
2783
|
-
|
|
2784
|
-
if (shouldThrow && !actual) {
|
|
2785
|
-
fail(actual, expected, 'Missing expected exception' + message);
|
|
2786
|
-
}
|
|
2787
|
-
|
|
2788
|
-
if (!shouldThrow && expectedException(actual, expected)) {
|
|
2789
|
-
fail(actual, expected, 'Got unwanted exception' + message);
|
|
2790
|
-
}
|
|
2791
|
-
|
|
2792
|
-
if ((shouldThrow && actual && expected &&
|
|
2793
|
-
!expectedException(actual, expected)) || (!shouldThrow && actual)) {
|
|
2794
|
-
throw actual;
|
|
2795
|
-
}
|
|
2796
|
-
}
|
|
2797
|
-
|
|
2798
|
-
// 11. Expected to throw an error:
|
|
2799
|
-
// assert.throws(block, Error_opt, message_opt);
|
|
2800
|
-
|
|
2801
|
-
assert.throws = function(block, /*optional*/error, /*optional*/message) {
|
|
2802
|
-
_throws.apply(this, [true].concat(pSlice.call(arguments)));
|
|
2803
|
-
};
|
|
2804
|
-
|
|
2805
|
-
// EXTENSION! This is annoying to write outside this module.
|
|
2806
|
-
assert.doesNotThrow = function(block, /*optional*/message) {
|
|
2807
|
-
_throws.apply(this, [false].concat(pSlice.call(arguments)));
|
|
2808
|
-
};
|
|
2809
|
-
|
|
2810
|
-
assert.ifError = function(err) { if (err) {throw err;}};
|
|
2811
|
-
},{"_shims":5,"util":7}],7:[function(require,module,exports){
|
|
433
|
+
},{"__browserify_process":4,"_shims":1,"util":3}],3:[function(require,module,exports){
|
|
2812
434
|
// Copyright Joyent, Inc. and other Node contributors.
|
|
2813
435
|
//
|
|
2814
436
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
@@ -3275,7 +897,11 @@ function isPrimitive(arg) {
|
|
|
3275
897
|
exports.isPrimitive = isPrimitive;
|
|
3276
898
|
|
|
3277
899
|
function isBuffer(arg) {
|
|
3278
|
-
return arg
|
|
900
|
+
return arg && typeof arg === 'object'
|
|
901
|
+
&& typeof arg.copy === 'function'
|
|
902
|
+
&& typeof arg.fill === 'function'
|
|
903
|
+
&& typeof arg.binarySlice === 'function'
|
|
904
|
+
;
|
|
3279
905
|
}
|
|
3280
906
|
exports.isBuffer = isBuffer;
|
|
3281
907
|
|
|
@@ -3349,10 +975,7 @@ function hasOwnProperty(obj, prop) {
|
|
|
3349
975
|
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
3350
976
|
}
|
|
3351
977
|
|
|
3352
|
-
},{"_shims":
|
|
3353
|
-
;;module.exports=require("buffer-browserify")
|
|
3354
|
-
|
|
3355
|
-
},{}],5:[function(require,module,exports){
|
|
978
|
+
},{"_shims":1}],4:[function(require,module,exports){
|
|
3356
979
|
// shim for using process in browser
|
|
3357
980
|
|
|
3358
981
|
var process = module.exports = {};
|
|
@@ -3406,7 +1029,7 @@ process.chdir = function (dir) {
|
|
|
3406
1029
|
throw new Error('process.chdir is not supported');
|
|
3407
1030
|
};
|
|
3408
1031
|
|
|
3409
|
-
},{}],
|
|
1032
|
+
},{}],5:[function(require,module,exports){
|
|
3410
1033
|
/*
|
|
3411
1034
|
Copyright (C) 2013 Ariya Hidayat <ariya.hidayat@gmail.com>
|
|
3412
1035
|
Copyright (C) 2013 Thaddee Tyl <thaddee.tyl@gmail.com>
|
|
@@ -3454,6 +1077,7 @@ parseStatement: true, parseSourceElement: true, parseModuleBlock: true, parseCon
|
|
|
3454
1077
|
advanceXJSChild: true, isXJSIdentifierStart: true, isXJSIdentifierPart: true,
|
|
3455
1078
|
scanXJSStringLiteral: true, scanXJSIdentifier: true,
|
|
3456
1079
|
parseXJSAttributeValue: true, parseXJSChild: true, parseXJSElement: true, parseXJSExpressionContainer: true, parseXJSEmptyExpression: true,
|
|
1080
|
+
parseTypeAnnotation: true, parseTypeAnnotatableIdentifier: true,
|
|
3457
1081
|
parseYieldExpression: true
|
|
3458
1082
|
*/
|
|
3459
1083
|
|
|
@@ -5096,61 +2720,63 @@ parseYieldExpression: true
|
|
|
5096
2720
|
},
|
|
5097
2721
|
|
|
5098
2722
|
createFunctionDeclaration: function (id, params, defaults, body, rest, generator, expression,
|
|
5099
|
-
|
|
2723
|
+
returnType) {
|
|
5100
2724
|
return {
|
|
5101
2725
|
type: Syntax.FunctionDeclaration,
|
|
5102
2726
|
id: id,
|
|
5103
2727
|
params: params,
|
|
5104
2728
|
defaults: defaults,
|
|
5105
|
-
returnType: returnTypeAnnotation,
|
|
5106
2729
|
body: body,
|
|
5107
2730
|
rest: rest,
|
|
5108
2731
|
generator: generator,
|
|
5109
|
-
expression: expression
|
|
2732
|
+
expression: expression,
|
|
2733
|
+
returnType: returnType
|
|
5110
2734
|
};
|
|
5111
2735
|
},
|
|
5112
2736
|
|
|
5113
2737
|
createFunctionExpression: function (id, params, defaults, body, rest, generator, expression,
|
|
5114
|
-
|
|
2738
|
+
returnType) {
|
|
5115
2739
|
return {
|
|
5116
2740
|
type: Syntax.FunctionExpression,
|
|
5117
2741
|
id: id,
|
|
5118
2742
|
params: params,
|
|
5119
2743
|
defaults: defaults,
|
|
5120
|
-
returnType: returnTypeAnnotation,
|
|
5121
2744
|
body: body,
|
|
5122
2745
|
rest: rest,
|
|
5123
2746
|
generator: generator,
|
|
5124
|
-
expression: expression
|
|
2747
|
+
expression: expression,
|
|
2748
|
+
returnType: returnType
|
|
5125
2749
|
};
|
|
5126
2750
|
},
|
|
5127
2751
|
|
|
5128
2752
|
createIdentifier: function (name) {
|
|
5129
2753
|
return {
|
|
5130
2754
|
type: Syntax.Identifier,
|
|
5131
|
-
name: name
|
|
2755
|
+
name: name,
|
|
2756
|
+
// Only here to initialize the shape of the object to ensure
|
|
2757
|
+
// that the 'typeAnnotation' key is ordered before others that
|
|
2758
|
+
// are added later (like 'loc' and 'range'). This just helps
|
|
2759
|
+
// keep the shape of Identifier nodes consistent with everything
|
|
2760
|
+
// else.
|
|
2761
|
+
typeAnnotation: undefined
|
|
5132
2762
|
};
|
|
5133
2763
|
},
|
|
5134
2764
|
|
|
5135
|
-
|
|
2765
|
+
createTypeAnnotation: function (typeIdentifier, paramTypes, returnType, isNullable) {
|
|
5136
2766
|
return {
|
|
5137
|
-
type: Syntax.
|
|
5138
|
-
|
|
5139
|
-
|
|
2767
|
+
type: Syntax.TypeAnnotation,
|
|
2768
|
+
id: typeIdentifier,
|
|
2769
|
+
paramTypes: paramTypes,
|
|
2770
|
+
returnType: returnType,
|
|
2771
|
+
isNullable: isNullable
|
|
5140
2772
|
};
|
|
5141
2773
|
},
|
|
5142
2774
|
|
|
5143
|
-
|
|
5144
|
-
paramTypes, returnType, unionType,
|
|
5145
|
-
nullable) {
|
|
2775
|
+
createTypeAnnotatedIdentifier: function (identifier, annotation) {
|
|
5146
2776
|
return {
|
|
5147
|
-
type: Syntax.
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
paramTypes: paramTypes,
|
|
5151
|
-
returnType: returnType,
|
|
5152
|
-
unionType: unionType,
|
|
5153
|
-
nullable: nullable
|
|
2777
|
+
type: Syntax.TypeAnnotatedIdentifier,
|
|
2778
|
+
id: identifier,
|
|
2779
|
+
annotation: annotation
|
|
5154
2780
|
};
|
|
5155
2781
|
},
|
|
5156
2782
|
|
|
@@ -5481,11 +3107,10 @@ parseYieldExpression: true
|
|
|
5481
3107
|
};
|
|
5482
3108
|
},
|
|
5483
3109
|
|
|
5484
|
-
createExportDeclaration: function (
|
|
3110
|
+
createExportDeclaration: function (declaration, specifiers, source) {
|
|
5485
3111
|
return {
|
|
5486
3112
|
type: Syntax.ExportDeclaration,
|
|
5487
3113
|
declaration: declaration,
|
|
5488
|
-
default: def,
|
|
5489
3114
|
specifiers: specifiers,
|
|
5490
3115
|
source: source
|
|
5491
3116
|
};
|
|
@@ -5879,7 +3504,7 @@ parseYieldExpression: true
|
|
|
5879
3504
|
key = parseObjectPropertyKey();
|
|
5880
3505
|
expect('(');
|
|
5881
3506
|
token = lookahead;
|
|
5882
|
-
param = [
|
|
3507
|
+
param = [ parseTypeAnnotatableIdentifier() ];
|
|
5883
3508
|
expect(')');
|
|
5884
3509
|
return delegate.createProperty('set', key, parsePropertyFunction({ params: param, generator: false, name: token }), false, false);
|
|
5885
3510
|
}
|
|
@@ -6690,108 +4315,68 @@ parseYieldExpression: true
|
|
|
6690
4315
|
|
|
6691
4316
|
// 12.2 Variable Statement
|
|
6692
4317
|
|
|
6693
|
-
function
|
|
6694
|
-
var
|
|
4318
|
+
function parseTypeAnnotation(dontExpectColon) {
|
|
4319
|
+
var typeIdentifier = null, paramTypes = null, returnType = null,
|
|
4320
|
+
isNullable = false;
|
|
6695
4321
|
|
|
6696
|
-
if (
|
|
6697
|
-
|
|
4322
|
+
if (!dontExpectColon) {
|
|
4323
|
+
expect(':');
|
|
6698
4324
|
}
|
|
6699
4325
|
|
|
6700
|
-
return delegate.createIdentifier(token.value);
|
|
6701
|
-
}
|
|
6702
|
-
|
|
6703
|
-
function parseTypeAnnotation() {
|
|
6704
|
-
var isNullable = false, paramTypes = null, returnType = null,
|
|
6705
|
-
templateTypes = null, type, unionType = null;
|
|
6706
|
-
|
|
6707
4326
|
if (match('?')) {
|
|
6708
4327
|
lex();
|
|
6709
4328
|
isNullable = true;
|
|
6710
4329
|
}
|
|
6711
4330
|
|
|
6712
|
-
type
|
|
6713
|
-
|
|
6714
|
-
if (match('<')) {
|
|
6715
|
-
lex();
|
|
6716
|
-
templateTypes = [];
|
|
6717
|
-
while (lookahead.type === Token.Identifier || match('?')) {
|
|
6718
|
-
templateTypes.push(parseTypeAnnotation());
|
|
6719
|
-
if (!match('>')) {
|
|
6720
|
-
expect(',');
|
|
6721
|
-
}
|
|
6722
|
-
}
|
|
6723
|
-
expect('>');
|
|
4331
|
+
if (lookahead.type === Token.Identifier) {
|
|
4332
|
+
typeIdentifier = parseVariableIdentifier();
|
|
6724
4333
|
}
|
|
6725
4334
|
|
|
6726
4335
|
if (match('(')) {
|
|
6727
4336
|
lex();
|
|
6728
4337
|
paramTypes = [];
|
|
6729
4338
|
while (lookahead.type === Token.Identifier || match('?')) {
|
|
6730
|
-
paramTypes.push(parseTypeAnnotation());
|
|
4339
|
+
paramTypes.push(parseTypeAnnotation(true));
|
|
6731
4340
|
if (!match(')')) {
|
|
6732
4341
|
expect(',');
|
|
6733
4342
|
}
|
|
6734
4343
|
}
|
|
6735
4344
|
expect(')');
|
|
4345
|
+
expect('=>');
|
|
6736
4346
|
|
|
6737
|
-
if (
|
|
4347
|
+
if (matchKeyword('void')) {
|
|
6738
4348
|
lex();
|
|
6739
|
-
|
|
4349
|
+
} else {
|
|
4350
|
+
returnType = parseTypeAnnotation(true);
|
|
6740
4351
|
}
|
|
6741
4352
|
}
|
|
6742
4353
|
|
|
6743
|
-
if (match('|')) {
|
|
6744
|
-
lex();
|
|
6745
|
-
unionType = parseTypeAnnotation();
|
|
6746
|
-
}
|
|
6747
|
-
|
|
6748
4354
|
return delegate.createTypeAnnotation(
|
|
6749
|
-
|
|
6750
|
-
templateTypes,
|
|
4355
|
+
typeIdentifier,
|
|
6751
4356
|
paramTypes,
|
|
6752
4357
|
returnType,
|
|
6753
|
-
unionType,
|
|
6754
4358
|
isNullable
|
|
6755
4359
|
);
|
|
6756
4360
|
}
|
|
6757
4361
|
|
|
6758
|
-
function
|
|
6759
|
-
var
|
|
6760
|
-
matchesNullableToken;
|
|
6761
|
-
|
|
6762
|
-
matchesNullableToken = match('?');
|
|
6763
|
-
|
|
6764
|
-
if (lookahead.type !== Token.Identifier && !matchesNullableToken) {
|
|
6765
|
-
throwUnexpected(lookahead);
|
|
6766
|
-
}
|
|
4362
|
+
function parseVariableIdentifier() {
|
|
4363
|
+
var token = lex();
|
|
6767
4364
|
|
|
6768
|
-
if (
|
|
6769
|
-
|
|
4365
|
+
if (token.type !== Token.Identifier) {
|
|
4366
|
+
throwUnexpected(token);
|
|
6770
4367
|
}
|
|
6771
4368
|
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
// function (number numVal) {}
|
|
6776
|
-
|| annotationLookahead.type === Token.Identifier
|
|
4369
|
+
return delegate.createIdentifier(token.value);
|
|
4370
|
+
}
|
|
6777
4371
|
|
|
6778
|
-
|
|
6779
|
-
|
|
6780
|
-
&& (annotationLookahead.value === '('
|
|
6781
|
-
|| annotationLookahead.value === '<'
|
|
6782
|
-
|| annotationLookahead.value === '|'));
|
|
4372
|
+
function parseTypeAnnotatableIdentifier() {
|
|
4373
|
+
var ident = parseVariableIdentifier();
|
|
6783
4374
|
|
|
6784
|
-
if (
|
|
6785
|
-
return
|
|
4375
|
+
if (match(':')) {
|
|
4376
|
+
return delegate.createTypeAnnotatedIdentifier(ident, parseTypeAnnotation());
|
|
6786
4377
|
}
|
|
6787
4378
|
|
|
6788
|
-
|
|
6789
|
-
identifier = parseVariableIdentifier();
|
|
6790
|
-
|
|
6791
|
-
return delegate.createTypeAnnotatedIdentifier(
|
|
6792
|
-
annotation,
|
|
6793
|
-
identifier
|
|
6794
|
-
);
|
|
4379
|
+
return ident;
|
|
6795
4380
|
}
|
|
6796
4381
|
|
|
6797
4382
|
function parseVariableDeclaration(kind) {
|
|
@@ -6804,11 +4389,7 @@ parseYieldExpression: true
|
|
|
6804
4389
|
id = parseArrayInitialiser();
|
|
6805
4390
|
reinterpretAsAssignmentBindingPattern(id);
|
|
6806
4391
|
} else {
|
|
6807
|
-
|
|
6808
|
-
id = matchKeyword('default') ? parseNonComputedProperty() : parseVariableIdentifier();
|
|
6809
|
-
} else {
|
|
6810
|
-
id = parseVariableIdentifier();
|
|
6811
|
-
}
|
|
4392
|
+
id = state.allowKeyword ? parseNonComputedProperty() : parseTypeAnnotatableIdentifier();
|
|
6812
4393
|
// 12.2.1
|
|
6813
4394
|
if (strict && isRestrictedWord(id.name)) {
|
|
6814
4395
|
throwErrorTolerant({}, Messages.StrictVarName);
|
|
@@ -6926,36 +4507,10 @@ parseYieldExpression: true
|
|
|
6926
4507
|
}
|
|
6927
4508
|
|
|
6928
4509
|
function parseExportDeclaration() {
|
|
6929
|
-
var
|
|
4510
|
+
var previousAllowKeyword, decl, def, src, specifiers;
|
|
6930
4511
|
|
|
6931
4512
|
expectKeyword('export');
|
|
6932
4513
|
|
|
6933
|
-
if (matchKeyword('default')) {
|
|
6934
|
-
lex();
|
|
6935
|
-
if (match('=')) {
|
|
6936
|
-
lex();
|
|
6937
|
-
def = parseAssignmentExpression();
|
|
6938
|
-
} else if (lookahead.type === Token.Keyword) {
|
|
6939
|
-
switch (lookahead.value) {
|
|
6940
|
-
case 'let':
|
|
6941
|
-
case 'const':
|
|
6942
|
-
case 'var':
|
|
6943
|
-
case 'class':
|
|
6944
|
-
def = parseSourceElement();
|
|
6945
|
-
break;
|
|
6946
|
-
case 'function':
|
|
6947
|
-
def = parseFunctionExpression();
|
|
6948
|
-
break;
|
|
6949
|
-
default:
|
|
6950
|
-
throwUnexpected(lex());
|
|
6951
|
-
}
|
|
6952
|
-
} else {
|
|
6953
|
-
def = parseAssignmentExpression();
|
|
6954
|
-
}
|
|
6955
|
-
consumeSemicolon();
|
|
6956
|
-
return delegate.createExportDeclaration(true, def, null, null);
|
|
6957
|
-
}
|
|
6958
|
-
|
|
6959
4514
|
if (lookahead.type === Token.Keyword) {
|
|
6960
4515
|
switch (lookahead.value) {
|
|
6961
4516
|
case 'let':
|
|
@@ -6963,13 +4518,16 @@ parseYieldExpression: true
|
|
|
6963
4518
|
case 'var':
|
|
6964
4519
|
case 'class':
|
|
6965
4520
|
case 'function':
|
|
6966
|
-
|
|
6967
|
-
state.allowDefault = true;
|
|
6968
|
-
decl = delegate.createExportDeclaration(false, parseSourceElement(), null, null);
|
|
6969
|
-
state.allowDefault = previousAllowDefault;
|
|
6970
|
-
return decl;
|
|
4521
|
+
return delegate.createExportDeclaration(parseSourceElement(), null, null);
|
|
6971
4522
|
}
|
|
6972
|
-
|
|
4523
|
+
}
|
|
4524
|
+
|
|
4525
|
+
if (isIdentifierName(lookahead)) {
|
|
4526
|
+
previousAllowKeyword = state.allowKeyword;
|
|
4527
|
+
state.allowKeyword = true;
|
|
4528
|
+
decl = parseVariableDeclarationList('let');
|
|
4529
|
+
state.allowKeyword = previousAllowKeyword;
|
|
4530
|
+
return delegate.createExportDeclaration(decl, null, null);
|
|
6973
4531
|
}
|
|
6974
4532
|
|
|
6975
4533
|
specifiers = [];
|
|
@@ -6995,7 +4553,7 @@ parseYieldExpression: true
|
|
|
6995
4553
|
|
|
6996
4554
|
consumeSemicolon();
|
|
6997
4555
|
|
|
6998
|
-
return delegate.createExportDeclaration(
|
|
4556
|
+
return delegate.createExportDeclaration(null, specifiers, src);
|
|
6999
4557
|
}
|
|
7000
4558
|
|
|
7001
4559
|
function parseImportDeclaration() {
|
|
@@ -7733,12 +5291,10 @@ parseYieldExpression: true
|
|
|
7733
5291
|
param = parseObjectInitialiser();
|
|
7734
5292
|
reinterpretAsDestructuredParameter(options, param);
|
|
7735
5293
|
} else {
|
|
7736
|
-
//
|
|
7737
|
-
// a bit awkward. We may come back to this, but for now we'll punt
|
|
7738
|
-
// on it.
|
|
5294
|
+
// Typing rest params is awkward, so punting on that for now
|
|
7739
5295
|
param = rest
|
|
7740
5296
|
? parseVariableIdentifier()
|
|
7741
|
-
:
|
|
5297
|
+
: parseTypeAnnotatableIdentifier();
|
|
7742
5298
|
validateParam(options, token, token.value);
|
|
7743
5299
|
if (match('=')) {
|
|
7744
5300
|
if (rest) {
|
|
@@ -7793,7 +5349,6 @@ parseYieldExpression: true
|
|
|
7793
5349
|
}
|
|
7794
5350
|
|
|
7795
5351
|
if (match(':')) {
|
|
7796
|
-
lex();
|
|
7797
5352
|
options.returnTypeAnnotation = parseTypeAnnotation();
|
|
7798
5353
|
}
|
|
7799
5354
|
|
|
@@ -7813,11 +5368,8 @@ parseYieldExpression: true
|
|
|
7813
5368
|
|
|
7814
5369
|
token = lookahead;
|
|
7815
5370
|
|
|
7816
|
-
|
|
7817
|
-
|
|
7818
|
-
} else {
|
|
7819
|
-
id = parseVariableIdentifier();
|
|
7820
|
-
}
|
|
5371
|
+
id = parseVariableIdentifier();
|
|
5372
|
+
|
|
7821
5373
|
if (strict) {
|
|
7822
5374
|
if (isRestrictedWord(token.value)) {
|
|
7823
5375
|
throwErrorTolerant(token, Messages.StrictFunctionName);
|
|
@@ -8025,7 +5577,7 @@ parseYieldExpression: true
|
|
|
8025
5577
|
|
|
8026
5578
|
expect('(');
|
|
8027
5579
|
token = lookahead;
|
|
8028
|
-
param = [
|
|
5580
|
+
param = [ parseTypeAnnotatableIdentifier() ];
|
|
8029
5581
|
expect(')');
|
|
8030
5582
|
return delegate.createMethodDefinition(
|
|
8031
5583
|
propType,
|
|
@@ -8109,11 +5661,7 @@ parseYieldExpression: true
|
|
|
8109
5661
|
|
|
8110
5662
|
expectKeyword('class');
|
|
8111
5663
|
|
|
8112
|
-
|
|
8113
|
-
id = matchKeyword('default') ? parseNonComputedProperty() : parseVariableIdentifier();
|
|
8114
|
-
} else {
|
|
8115
|
-
id = parseVariableIdentifier();
|
|
8116
|
-
}
|
|
5664
|
+
id = parseVariableIdentifier();
|
|
8117
5665
|
|
|
8118
5666
|
if (matchKeyword('extends')) {
|
|
8119
5667
|
expectKeyword('extends');
|
|
@@ -9377,13 +6925,13 @@ parseYieldExpression: true
|
|
|
9377
6925
|
extra.parseSpreadOrAssignmentExpression = parseSpreadOrAssignmentExpression;
|
|
9378
6926
|
extra.parseTemplateElement = parseTemplateElement;
|
|
9379
6927
|
extra.parseTemplateLiteral = parseTemplateLiteral;
|
|
6928
|
+
extra.parseTypeAnnotatableIdentifier = parseTypeAnnotatableIdentifier;
|
|
6929
|
+
extra.parseTypeAnnotation = parseTypeAnnotation;
|
|
9380
6930
|
extra.parseStatement = parseStatement;
|
|
9381
6931
|
extra.parseSwitchCase = parseSwitchCase;
|
|
9382
6932
|
extra.parseUnaryExpression = parseUnaryExpression;
|
|
9383
6933
|
extra.parseVariableDeclaration = parseVariableDeclaration;
|
|
9384
6934
|
extra.parseVariableIdentifier = parseVariableIdentifier;
|
|
9385
|
-
extra.parseAnnotatableIdentifier = parseAnnotatableIdentifier;
|
|
9386
|
-
extra.parseTypeAnnotation = parseTypeAnnotation;
|
|
9387
6935
|
extra.parseMethodDefinition = parseMethodDefinition;
|
|
9388
6936
|
extra.parseClassDeclaration = parseClassDeclaration;
|
|
9389
6937
|
extra.parseClassExpression = parseClassExpression;
|
|
@@ -9429,14 +6977,14 @@ parseYieldExpression: true
|
|
|
9429
6977
|
parsePropertyFunction = wrapTracking(extra.parsePropertyFunction);
|
|
9430
6978
|
parseTemplateElement = wrapTracking(extra.parseTemplateElement);
|
|
9431
6979
|
parseTemplateLiteral = wrapTracking(extra.parseTemplateLiteral);
|
|
6980
|
+
parseTypeAnnotatableIdentifier = wrapTracking(extra.parseTypeAnnotatableIdentifier);
|
|
6981
|
+
parseTypeAnnotation = wrapTracking(extra.parseTypeAnnotation);
|
|
9432
6982
|
parseSpreadOrAssignmentExpression = wrapTracking(extra.parseSpreadOrAssignmentExpression);
|
|
9433
6983
|
parseStatement = wrapTracking(extra.parseStatement);
|
|
9434
6984
|
parseSwitchCase = wrapTracking(extra.parseSwitchCase);
|
|
9435
6985
|
parseUnaryExpression = wrapTracking(extra.parseUnaryExpression);
|
|
9436
6986
|
parseVariableDeclaration = wrapTracking(extra.parseVariableDeclaration);
|
|
9437
6987
|
parseVariableIdentifier = wrapTracking(extra.parseVariableIdentifier);
|
|
9438
|
-
parseAnnotatableIdentifier = wrapTracking(extra.parseAnnotatableIdentifier);
|
|
9439
|
-
parseTypeAnnotation = wrapTracking(extra.parseTypeAnnotation);
|
|
9440
6988
|
parseMethodDefinition = wrapTracking(extra.parseMethodDefinition);
|
|
9441
6989
|
parseClassDeclaration = wrapTracking(extra.parseClassDeclaration);
|
|
9442
6990
|
parseClassExpression = wrapTracking(extra.parseClassExpression);
|
|
@@ -9499,14 +7047,14 @@ parseYieldExpression: true
|
|
|
9499
7047
|
parsePropertyFunction = extra.parsePropertyFunction;
|
|
9500
7048
|
parseTemplateElement = extra.parseTemplateElement;
|
|
9501
7049
|
parseTemplateLiteral = extra.parseTemplateLiteral;
|
|
7050
|
+
parseTypeAnnotatableIdentifier = extra.parseTypeAnnotatableIdentifier;
|
|
7051
|
+
parseTypeAnnotation = extra.parseTypeAnnotation;
|
|
9502
7052
|
parseSpreadOrAssignmentExpression = extra.parseSpreadOrAssignmentExpression;
|
|
9503
7053
|
parseStatement = extra.parseStatement;
|
|
9504
7054
|
parseSwitchCase = extra.parseSwitchCase;
|
|
9505
7055
|
parseUnaryExpression = extra.parseUnaryExpression;
|
|
9506
7056
|
parseVariableDeclaration = extra.parseVariableDeclaration;
|
|
9507
7057
|
parseVariableIdentifier = extra.parseVariableIdentifier;
|
|
9508
|
-
parseAnnotatableIdentifier = extra.parseAnnotatableIdentifier;
|
|
9509
|
-
parseTypeAnnotation = extra.parseTypeAnnotation;
|
|
9510
7058
|
parseMethodDefinition = extra.parseMethodDefinition;
|
|
9511
7059
|
parseClassDeclaration = extra.parseClassDeclaration;
|
|
9512
7060
|
parseClassExpression = extra.parseClassExpression;
|
|
@@ -9566,7 +7114,7 @@ parseYieldExpression: true
|
|
|
9566
7114
|
length = source.length;
|
|
9567
7115
|
lookahead = null;
|
|
9568
7116
|
state = {
|
|
9569
|
-
|
|
7117
|
+
allowKeyword: true,
|
|
9570
7118
|
allowIn: true,
|
|
9571
7119
|
labelSet: {},
|
|
9572
7120
|
inFunctionBody: false,
|
|
@@ -9667,7 +7215,7 @@ parseYieldExpression: true
|
|
|
9667
7215
|
length = source.length;
|
|
9668
7216
|
lookahead = null;
|
|
9669
7217
|
state = {
|
|
9670
|
-
|
|
7218
|
+
allowKeyword: false,
|
|
9671
7219
|
allowIn: true,
|
|
9672
7220
|
labelSet: {},
|
|
9673
7221
|
parenthesizedCount: 0,
|
|
@@ -9772,7 +7320,7 @@ parseYieldExpression: true
|
|
|
9772
7320
|
}));
|
|
9773
7321
|
/* vim: set sw=4 ts=4 et tw=80 : */
|
|
9774
7322
|
|
|
9775
|
-
},{}],
|
|
7323
|
+
},{}],6:[function(require,module,exports){
|
|
9776
7324
|
var Base62 = (function (my) {
|
|
9777
7325
|
my.chars = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
|
|
9778
7326
|
|
|
@@ -9800,7 +7348,7 @@ var Base62 = (function (my) {
|
|
|
9800
7348
|
}({}));
|
|
9801
7349
|
|
|
9802
7350
|
module.exports = Base62
|
|
9803
|
-
},{}],
|
|
7351
|
+
},{}],7:[function(require,module,exports){
|
|
9804
7352
|
/*
|
|
9805
7353
|
* Copyright 2009-2011 Mozilla Foundation and contributors
|
|
9806
7354
|
* Licensed under the New BSD license. See LICENSE.txt or:
|
|
@@ -9810,7 +7358,7 @@ exports.SourceMapGenerator = require('./source-map/source-map-generator').Source
|
|
|
9810
7358
|
exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer;
|
|
9811
7359
|
exports.SourceNode = require('./source-map/source-node').SourceNode;
|
|
9812
7360
|
|
|
9813
|
-
},{"./source-map/source-map-consumer":
|
|
7361
|
+
},{"./source-map/source-map-consumer":12,"./source-map/source-map-generator":13,"./source-map/source-node":14}],8:[function(require,module,exports){
|
|
9814
7362
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
|
9815
7363
|
/*
|
|
9816
7364
|
* Copyright 2011 Mozilla Foundation and contributors
|
|
@@ -9919,7 +7467,7 @@ define(function (require, exports, module) {
|
|
|
9919
7467
|
|
|
9920
7468
|
});
|
|
9921
7469
|
|
|
9922
|
-
},{"amdefine":
|
|
7470
|
+
},{"amdefine":16}],9:[function(require,module,exports){
|
|
9923
7471
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
|
9924
7472
|
/*
|
|
9925
7473
|
* Copyright 2011 Mozilla Foundation and contributors
|
|
@@ -10065,7 +7613,7 @@ define(function (require, exports, module) {
|
|
|
10065
7613
|
|
|
10066
7614
|
});
|
|
10067
7615
|
|
|
10068
|
-
},{"./base64":
|
|
7616
|
+
},{"./base64":10,"amdefine":16}],10:[function(require,module,exports){
|
|
10069
7617
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
|
10070
7618
|
/*
|
|
10071
7619
|
* Copyright 2011 Mozilla Foundation and contributors
|
|
@@ -10109,7 +7657,7 @@ define(function (require, exports, module) {
|
|
|
10109
7657
|
|
|
10110
7658
|
});
|
|
10111
7659
|
|
|
10112
|
-
},{"amdefine":
|
|
7660
|
+
},{"amdefine":16}],11:[function(require,module,exports){
|
|
10113
7661
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
|
10114
7662
|
/*
|
|
10115
7663
|
* Copyright 2011 Mozilla Foundation and contributors
|
|
@@ -10192,7 +7740,7 @@ define(function (require, exports, module) {
|
|
|
10192
7740
|
|
|
10193
7741
|
});
|
|
10194
7742
|
|
|
10195
|
-
},{"amdefine":
|
|
7743
|
+
},{"amdefine":16}],12:[function(require,module,exports){
|
|
10196
7744
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
|
10197
7745
|
/*
|
|
10198
7746
|
* Copyright 2011 Mozilla Foundation and contributors
|
|
@@ -10573,7 +8121,7 @@ define(function (require, exports, module) {
|
|
|
10573
8121
|
|
|
10574
8122
|
});
|
|
10575
8123
|
|
|
10576
|
-
},{"./array-set":
|
|
8124
|
+
},{"./array-set":8,"./base64-vlq":9,"./binary-search":11,"./util":15,"amdefine":16}],13:[function(require,module,exports){
|
|
10577
8125
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
|
10578
8126
|
/*
|
|
10579
8127
|
* Copyright 2011 Mozilla Foundation and contributors
|
|
@@ -10777,7 +8325,7 @@ define(function (require, exports, module) {
|
|
|
10777
8325
|
|
|
10778
8326
|
});
|
|
10779
8327
|
|
|
10780
|
-
},{"./array-set":
|
|
8328
|
+
},{"./array-set":8,"./base64-vlq":9,"./util":15,"amdefine":16}],14:[function(require,module,exports){
|
|
10781
8329
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
|
10782
8330
|
/*
|
|
10783
8331
|
* Copyright 2011 Mozilla Foundation and contributors
|
|
@@ -10978,7 +8526,7 @@ define(function (require, exports, module) {
|
|
|
10978
8526
|
|
|
10979
8527
|
});
|
|
10980
8528
|
|
|
10981
|
-
},{"./source-map-generator":
|
|
8529
|
+
},{"./source-map-generator":13,"amdefine":16}],15:[function(require,module,exports){
|
|
10982
8530
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
|
10983
8531
|
/*
|
|
10984
8532
|
* Copyright 2011 Mozilla Foundation and contributors
|
|
@@ -11020,7 +8568,7 @@ define(function (require, exports, module) {
|
|
|
11020
8568
|
|
|
11021
8569
|
});
|
|
11022
8570
|
|
|
11023
|
-
},{"amdefine":
|
|
8571
|
+
},{"amdefine":16}],16:[function(require,module,exports){
|
|
11024
8572
|
var process=require("__browserify_process"),__filename="/../node_modules/jstransform/node_modules/source-map/node_modules/amdefine/amdefine.js";/** vim: et:ts=4:sw=4:sts=4
|
|
11025
8573
|
* @license amdefine 0.1.0 Copyright (c) 2011, The Dojo Foundation All Rights Reserved.
|
|
11026
8574
|
* Available via the MIT or new BSD license.
|
|
@@ -11321,7 +8869,7 @@ function amdefine(module, requireFn) {
|
|
|
11321
8869
|
|
|
11322
8870
|
module.exports = amdefine;
|
|
11323
8871
|
|
|
11324
|
-
},{"__browserify_process":
|
|
8872
|
+
},{"__browserify_process":4,"path":2}],17:[function(require,module,exports){
|
|
11325
8873
|
/**
|
|
11326
8874
|
* Copyright 2013 Facebook, Inc.
|
|
11327
8875
|
*
|
|
@@ -11409,7 +8957,7 @@ exports.extract = extract;
|
|
|
11409
8957
|
exports.parse = parse;
|
|
11410
8958
|
exports.parseAsObject = parseAsObject;
|
|
11411
8959
|
|
|
11412
|
-
},{}],
|
|
8960
|
+
},{}],18:[function(require,module,exports){
|
|
11413
8961
|
/**
|
|
11414
8962
|
* Copyright 2013 Facebook, Inc.
|
|
11415
8963
|
*
|
|
@@ -11658,7 +9206,7 @@ function transform(visitors, source, options) {
|
|
|
11658
9206
|
|
|
11659
9207
|
exports.transform = transform;
|
|
11660
9208
|
|
|
11661
|
-
},{"./utils":
|
|
9209
|
+
},{"./utils":19,"esprima-fb":5,"source-map":7}],19:[function(require,module,exports){
|
|
11662
9210
|
/**
|
|
11663
9211
|
* Copyright 2013 Facebook, Inc.
|
|
11664
9212
|
*
|
|
@@ -12139,7 +9687,7 @@ exports.updateIndent = updateIndent;
|
|
|
12139
9687
|
exports.updateState = updateState;
|
|
12140
9688
|
exports.analyzeAndTraverse = analyzeAndTraverse;
|
|
12141
9689
|
|
|
12142
|
-
},{"./docblock":
|
|
9690
|
+
},{"./docblock":17}],20:[function(require,module,exports){
|
|
12143
9691
|
/**
|
|
12144
9692
|
* Copyright 2013 Facebook, Inc.
|
|
12145
9693
|
*
|
|
@@ -12619,7 +10167,7 @@ exports.visitorList = [
|
|
|
12619
10167
|
visitSuperMemberExpression
|
|
12620
10168
|
];
|
|
12621
10169
|
|
|
12622
|
-
},{"../src/utils":
|
|
10170
|
+
},{"../src/utils":19,"base62":6,"esprima-fb":5}],21:[function(require,module,exports){
|
|
12623
10171
|
/**
|
|
12624
10172
|
* Copyright 2013 Facebook, Inc.
|
|
12625
10173
|
*
|
|
@@ -12665,7 +10213,7 @@ var run = exports.run = function(code) {
|
|
|
12665
10213
|
var functionBody = jsx ? transform(code).code : code;
|
|
12666
10214
|
var scriptEl = document.createElement('script');
|
|
12667
10215
|
|
|
12668
|
-
scriptEl.
|
|
10216
|
+
scriptEl.text = functionBody;
|
|
12669
10217
|
headEl.appendChild(scriptEl);
|
|
12670
10218
|
};
|
|
12671
10219
|
|
|
@@ -12697,11 +10245,15 @@ var load = exports.load = function(url, callback) {
|
|
|
12697
10245
|
|
|
12698
10246
|
runScripts = function() {
|
|
12699
10247
|
var scripts = document.getElementsByTagName('script');
|
|
12700
|
-
|
|
12701
|
-
|
|
12702
|
-
|
|
12703
|
-
|
|
12704
|
-
|
|
10248
|
+
|
|
10249
|
+
// Array.prototype.slice cannot be used on NodeList on IE8
|
|
10250
|
+
var jsxScripts = [];
|
|
10251
|
+
for (var i = 0; i < scripts.length; i++) {
|
|
10252
|
+
if (scripts.item(i).type === 'text/jsx') {
|
|
10253
|
+
jsxScripts.push(scripts.item(i));
|
|
10254
|
+
}
|
|
10255
|
+
}
|
|
10256
|
+
|
|
12705
10257
|
console.warn("You are using the in-browser JSX transformer. Be sure to precompile your JSX for production - http://facebook.github.io/react/docs/tooling-integration.html#jsx");
|
|
12706
10258
|
|
|
12707
10259
|
jsxScripts.forEach(function(script) {
|
|
@@ -12719,7 +10271,7 @@ if (window.addEventListener) {
|
|
|
12719
10271
|
window.attachEvent('onload', runScripts);
|
|
12720
10272
|
}
|
|
12721
10273
|
|
|
12722
|
-
},{"./fbtransform/visitors":
|
|
10274
|
+
},{"./fbtransform/visitors":25,"jstransform":18,"jstransform/src/docblock":17}],22:[function(require,module,exports){
|
|
12723
10275
|
/**
|
|
12724
10276
|
* Copyright 2013 Facebook, Inc.
|
|
12725
10277
|
*
|
|
@@ -12739,12 +10291,7 @@ if (window.addEventListener) {
|
|
|
12739
10291
|
"use strict";
|
|
12740
10292
|
|
|
12741
10293
|
var Syntax = require('esprima-fb').Syntax;
|
|
12742
|
-
|
|
12743
|
-
var catchup = require('jstransform/src/utils').catchup;
|
|
12744
|
-
var catchupWhiteSpace = require('jstransform/src/utils').catchupWhiteSpace;
|
|
12745
|
-
var append = require('jstransform/src/utils').append;
|
|
12746
|
-
var move = require('jstransform/src/utils').move;
|
|
12747
|
-
var getDocblock = require('jstransform/src/utils').getDocblock;
|
|
10294
|
+
var utils = require('jstransform/src/utils');
|
|
12748
10295
|
|
|
12749
10296
|
var FALLBACK_TAGS = require('./xjs').knownTags;
|
|
12750
10297
|
var renderXJSExpressionContainer =
|
|
@@ -12778,9 +10325,9 @@ var JSX_ATTRIBUTE_TRANSFORMS = {
|
|
|
12778
10325
|
};
|
|
12779
10326
|
|
|
12780
10327
|
function visitReactTag(traverse, object, path, state) {
|
|
12781
|
-
var jsxObjIdent = getDocblock(state).jsx;
|
|
10328
|
+
var jsxObjIdent = utils.getDocblock(state).jsx;
|
|
12782
10329
|
|
|
12783
|
-
catchup(object.openingElement.range[0], state);
|
|
10330
|
+
utils.catchup(object.openingElement.range[0], state);
|
|
12784
10331
|
|
|
12785
10332
|
if (object.name.namespace) {
|
|
12786
10333
|
throw new Error(
|
|
@@ -12788,12 +10335,12 @@ function visitReactTag(traverse, object, path, state) {
|
|
|
12788
10335
|
}
|
|
12789
10336
|
|
|
12790
10337
|
var isFallbackTag = FALLBACK_TAGS[object.name.name];
|
|
12791
|
-
append(
|
|
10338
|
+
utils.append(
|
|
12792
10339
|
(isFallbackTag ? jsxObjIdent + '.' : '') + (object.name.name) + '(',
|
|
12793
10340
|
state
|
|
12794
10341
|
);
|
|
12795
10342
|
|
|
12796
|
-
move(object.name.range[1], state);
|
|
10343
|
+
utils.move(object.name.range[1], state);
|
|
12797
10344
|
|
|
12798
10345
|
var childrenToRender = object.children.filter(function(child) {
|
|
12799
10346
|
return !(child.type === Syntax.Literal && !child.value.match(/\S/));
|
|
@@ -12801,12 +10348,12 @@ function visitReactTag(traverse, object, path, state) {
|
|
|
12801
10348
|
|
|
12802
10349
|
// if we don't have any attributes, pass in null
|
|
12803
10350
|
if (object.attributes.length === 0) {
|
|
12804
|
-
append('null', state);
|
|
10351
|
+
utils.append('null', state);
|
|
12805
10352
|
}
|
|
12806
10353
|
|
|
12807
10354
|
// write attributes
|
|
12808
10355
|
object.attributes.forEach(function(attr, index) {
|
|
12809
|
-
catchup(attr.range[0], state);
|
|
10356
|
+
utils.catchup(attr.range[0], state);
|
|
12810
10357
|
if (attr.name.namespace) {
|
|
12811
10358
|
throw new Error(
|
|
12812
10359
|
'Namespace attributes are not supported. ReactJSX is not XML.');
|
|
@@ -12816,27 +10363,27 @@ function visitReactTag(traverse, object, path, state) {
|
|
|
12816
10363
|
var isLast = index === object.attributes.length - 1;
|
|
12817
10364
|
|
|
12818
10365
|
if (isFirst) {
|
|
12819
|
-
append('{', state);
|
|
10366
|
+
utils.append('{', state);
|
|
12820
10367
|
}
|
|
12821
10368
|
|
|
12822
|
-
append(quoteAttrName(name), state);
|
|
12823
|
-
append(':', state);
|
|
10369
|
+
utils.append(quoteAttrName(name), state);
|
|
10370
|
+
utils.append(':', state);
|
|
12824
10371
|
|
|
12825
10372
|
if (!attr.value) {
|
|
12826
10373
|
state.g.buffer += 'true';
|
|
12827
10374
|
state.g.position = attr.name.range[1];
|
|
12828
10375
|
if (!isLast) {
|
|
12829
|
-
append(',', state);
|
|
10376
|
+
utils.append(',', state);
|
|
12830
10377
|
}
|
|
12831
10378
|
} else {
|
|
12832
|
-
move(attr.name.range[1], state);
|
|
10379
|
+
utils.move(attr.name.range[1], state);
|
|
12833
10380
|
// Use catchupWhiteSpace to skip over the '=' in the attribute
|
|
12834
|
-
catchupWhiteSpace(attr.value.range[0], state);
|
|
10381
|
+
utils.catchupWhiteSpace(attr.value.range[0], state);
|
|
12835
10382
|
if (JSX_ATTRIBUTE_TRANSFORMS[attr.name.name]) {
|
|
12836
|
-
append(JSX_ATTRIBUTE_TRANSFORMS[attr.name.name](attr), state);
|
|
12837
|
-
move(attr.value.range[1], state);
|
|
10383
|
+
utils.append(JSX_ATTRIBUTE_TRANSFORMS[attr.name.name](attr), state);
|
|
10384
|
+
utils.move(attr.value.range[1], state);
|
|
12838
10385
|
if (!isLast) {
|
|
12839
|
-
append(',', state);
|
|
10386
|
+
utils.append(',', state);
|
|
12840
10387
|
}
|
|
12841
10388
|
} else if (attr.value.type === Syntax.Literal) {
|
|
12842
10389
|
renderXJSLiteral(attr.value, isLast, state);
|
|
@@ -12846,26 +10393,26 @@ function visitReactTag(traverse, object, path, state) {
|
|
|
12846
10393
|
}
|
|
12847
10394
|
|
|
12848
10395
|
if (isLast) {
|
|
12849
|
-
append('}', state);
|
|
10396
|
+
utils.append('}', state);
|
|
12850
10397
|
}
|
|
12851
10398
|
|
|
12852
|
-
catchup(attr.range[1], state);
|
|
10399
|
+
utils.catchup(attr.range[1], state);
|
|
12853
10400
|
});
|
|
12854
10401
|
|
|
12855
10402
|
if (!object.selfClosing) {
|
|
12856
|
-
catchup(object.openingElement.range[1] - 1, state);
|
|
12857
|
-
move(object.openingElement.range[1], state);
|
|
10403
|
+
utils.catchup(object.openingElement.range[1] - 1, state);
|
|
10404
|
+
utils.move(object.openingElement.range[1], state);
|
|
12858
10405
|
}
|
|
12859
10406
|
|
|
12860
10407
|
// filter out whitespace
|
|
12861
10408
|
if (childrenToRender.length > 0) {
|
|
12862
|
-
append(', ', state);
|
|
10409
|
+
utils.append(', ', state);
|
|
12863
10410
|
|
|
12864
10411
|
object.children.forEach(function(child) {
|
|
12865
10412
|
if (child.type === Syntax.Literal && !child.value.match(/\S/)) {
|
|
12866
10413
|
return;
|
|
12867
10414
|
}
|
|
12868
|
-
catchup(child.range[0], state);
|
|
10415
|
+
utils.catchup(child.range[0], state);
|
|
12869
10416
|
|
|
12870
10417
|
var isLast = child === childrenToRender[childrenToRender.length - 1];
|
|
12871
10418
|
|
|
@@ -12876,38 +10423,38 @@ function visitReactTag(traverse, object, path, state) {
|
|
|
12876
10423
|
} else {
|
|
12877
10424
|
traverse(child, path, state);
|
|
12878
10425
|
if (!isLast) {
|
|
12879
|
-
append(',', state);
|
|
10426
|
+
utils.append(',', state);
|
|
12880
10427
|
state.g.buffer = state.g.buffer.replace(/(\s*),$/, ',$1');
|
|
12881
10428
|
}
|
|
12882
10429
|
}
|
|
12883
10430
|
|
|
12884
|
-
catchup(child.range[1], state);
|
|
10431
|
+
utils.catchup(child.range[1], state);
|
|
12885
10432
|
});
|
|
12886
10433
|
}
|
|
12887
10434
|
|
|
12888
10435
|
if (object.selfClosing) {
|
|
12889
10436
|
// everything up to />
|
|
12890
|
-
catchup(object.openingElement.range[1] - 2, state);
|
|
12891
|
-
move(object.openingElement.range[1], state);
|
|
10437
|
+
utils.catchup(object.openingElement.range[1] - 2, state);
|
|
10438
|
+
utils.move(object.openingElement.range[1], state);
|
|
12892
10439
|
} else {
|
|
12893
10440
|
// everything up to </ sdflksjfd>
|
|
12894
|
-
catchup(object.closingElement.range[0], state);
|
|
12895
|
-
move(object.closingElement.range[1], state);
|
|
10441
|
+
utils.catchup(object.closingElement.range[0], state);
|
|
10442
|
+
utils.move(object.closingElement.range[1], state);
|
|
12896
10443
|
}
|
|
12897
10444
|
|
|
12898
|
-
append(')', state);
|
|
10445
|
+
utils.append(')', state);
|
|
12899
10446
|
return false;
|
|
12900
10447
|
}
|
|
12901
10448
|
|
|
12902
10449
|
visitReactTag.test = function(object, path, state) {
|
|
12903
10450
|
// only run react when react @jsx namespace is specified in docblock
|
|
12904
|
-
var jsx = getDocblock(state).jsx;
|
|
10451
|
+
var jsx = utils.getDocblock(state).jsx;
|
|
12905
10452
|
return object.type === Syntax.XJSElement && jsx && jsx.length;
|
|
12906
10453
|
};
|
|
12907
10454
|
|
|
12908
10455
|
exports.visitReactTag = visitReactTag;
|
|
12909
10456
|
|
|
12910
|
-
},{"./xjs":
|
|
10457
|
+
},{"./xjs":24,"esprima-fb":5,"jstransform/src/utils":19}],23:[function(require,module,exports){
|
|
12911
10458
|
/**
|
|
12912
10459
|
* Copyright 2013 Facebook, Inc.
|
|
12913
10460
|
*
|
|
@@ -12927,9 +10474,7 @@ exports.visitReactTag = visitReactTag;
|
|
|
12927
10474
|
"use strict";
|
|
12928
10475
|
|
|
12929
10476
|
var Syntax = require('esprima-fb').Syntax;
|
|
12930
|
-
var
|
|
12931
|
-
var append = require('jstransform/src/utils').append;
|
|
12932
|
-
var getDocblock = require('jstransform/src/utils').getDocblock;
|
|
10477
|
+
var utils = require('jstransform/src/utils');
|
|
12933
10478
|
|
|
12934
10479
|
/**
|
|
12935
10480
|
* Transforms the following:
|
|
@@ -12958,8 +10503,8 @@ function visitReactDisplayName(traverse, object, path, state) {
|
|
|
12958
10503
|
object.init['arguments'][0].type === Syntax.ObjectExpression) {
|
|
12959
10504
|
|
|
12960
10505
|
var displayName = object.id.name;
|
|
12961
|
-
catchup(object.init['arguments'][0].range[0] + 1, state);
|
|
12962
|
-
append("displayName: '" + displayName + "',", state);
|
|
10506
|
+
utils.catchup(object.init['arguments'][0].range[0] + 1, state);
|
|
10507
|
+
utils.append("displayName: '" + displayName + "',", state);
|
|
12963
10508
|
}
|
|
12964
10509
|
}
|
|
12965
10510
|
|
|
@@ -12967,12 +10512,12 @@ function visitReactDisplayName(traverse, object, path, state) {
|
|
|
12967
10512
|
* Will only run on @jsx files for now.
|
|
12968
10513
|
*/
|
|
12969
10514
|
visitReactDisplayName.test = function(object, path, state) {
|
|
12970
|
-
return object.type === Syntax.VariableDeclarator && !!getDocblock(state).jsx;
|
|
10515
|
+
return object.type === Syntax.VariableDeclarator && !!utils.getDocblock(state).jsx;
|
|
12971
10516
|
};
|
|
12972
10517
|
|
|
12973
10518
|
exports.visitReactDisplayName = visitReactDisplayName;
|
|
12974
10519
|
|
|
12975
|
-
},{"esprima-fb":
|
|
10520
|
+
},{"esprima-fb":5,"jstransform/src/utils":19}],24:[function(require,module,exports){
|
|
12976
10521
|
/**
|
|
12977
10522
|
* Copyright 2013 Facebook, Inc.
|
|
12978
10523
|
*
|
|
@@ -13266,7 +10811,7 @@ exports.renderXJSExpressionContainer = renderXJSExpressionContainer;
|
|
|
13266
10811
|
exports.renderXJSLiteral = renderXJSLiteral;
|
|
13267
10812
|
exports.quoteAttrName = quoteAttrName;
|
|
13268
10813
|
|
|
13269
|
-
},{"esprima-fb":
|
|
10814
|
+
},{"esprima-fb":5,"jstransform/src/utils":19}],25:[function(require,module,exports){
|
|
13270
10815
|
/*global exports:true*/
|
|
13271
10816
|
var es6Classes = require('jstransform/visitors/es6-class-visitors').visitorList;
|
|
13272
10817
|
var react = require('./transforms/react');
|
|
@@ -13311,7 +10856,7 @@ function getVisitorsList(excludes) {
|
|
|
13311
10856
|
exports.getVisitorsList = getVisitorsList;
|
|
13312
10857
|
exports.transformVisitors = transformVisitors;
|
|
13313
10858
|
|
|
13314
|
-
},{"./transforms/react":
|
|
13315
|
-
(
|
|
10859
|
+
},{"./transforms/react":22,"./transforms/reactDisplayName":23,"jstransform/visitors/es6-class-visitors":20}]},{},[21])
|
|
10860
|
+
(21)
|
|
13316
10861
|
});
|
|
13317
10862
|
;
|