|
85 | 85 | *
|
86 | 86 | * @return {String}
|
87 | 87 | */
|
88 |
| - var getGlobalVariable = function (value, indent, stringify) { |
| 88 | + var toGlobalVariable = function (value, indent, stringify) { |
89 | 89 | return 'Function(' + stringify('return this;') + ')()';
|
90 | 90 | };
|
91 | 91 |
|
|
99 | 99 | // Map array values to their stringified values with correct indentation.
|
100 | 100 | var values = array.map(function (value) {
|
101 | 101 | var str = stringify(value);
|
102 |
| - return indent + (str && str.split('\n').join('\n' + indent)); |
| 102 | + |
| 103 | + if (value === undefined) { |
| 104 | + return String(str) |
| 105 | + } |
| 106 | + |
| 107 | + return indent + str.split('\n').join('\n' + indent); |
103 | 108 | }).join(indent ? ',\n' : ',');
|
104 | 109 |
|
105 | 110 | // Wrap the array in newlines if we have indentation set.
|
|
140 | 145 |
|
141 | 146 | return '{' + values + '}';
|
142 | 147 | },
|
143 |
| - '[object Date]': function (date, indent, stringify) { |
| 148 | + '[object Date]': function (date) { |
144 | 149 | return 'new Date(' + date.getTime() + ')';
|
145 | 150 | },
|
146 |
| - '[object String]': function (string, indent, stringify) { |
| 151 | + '[object String]': function (string) { |
147 | 152 | return 'new String(' + stringify(string.toString()) + ')';
|
148 | 153 | },
|
149 |
| - '[object Number]': function (number, indent, stringify) { |
| 154 | + '[object Number]': function (number) { |
150 | 155 | return 'new Number(' + number + ')';
|
151 | 156 | },
|
152 |
| - '[object Boolean]': function (boolean, indent, stringify) { |
| 157 | + '[object Boolean]': function (boolean) { |
153 | 158 | return 'new Boolean(' + boolean + ')';
|
154 | 159 | },
|
| 160 | + '[object Uint8Array]': function (array, indent) { |
| 161 | + if (typeof Buffer === 'function' && Buffer.isBuffer(array)) { |
| 162 | + return 'new Buffer(' + stringify(array.toString()) + ')'; |
| 163 | + } |
| 164 | + |
| 165 | + if (indent) { |
| 166 | + var str = ''; |
| 167 | + |
| 168 | + for (var i = 0; i < array.length; i++) { |
| 169 | + str += indent + array[i] + ',\n' |
| 170 | + } |
| 171 | + |
| 172 | + return 'new Uint8Array([\n' + str + '\n])' |
| 173 | + } |
| 174 | + |
| 175 | + return 'new Uint8Array([' + array.join(indent ? ',\n' : ',') + '])' |
| 176 | + }, |
155 | 177 | '[object RegExp]': String,
|
156 | 178 | '[object Function]': String,
|
157 |
| - '[object global]': getGlobalVariable, |
158 |
| - '[object Window]': getGlobalVariable |
| 179 | + '[object global]': toGlobalVariable, |
| 180 | + '[object Window]': toGlobalVariable |
159 | 181 | };
|
160 | 182 |
|
161 | 183 | /**
|
|
0 commit comments