Better pretty printing for typed arrays

This commit is contained in:
ksvitkovsky
2017-08-01 23:58:33 +04:00
committed by Gregg Van Hove
parent acc8c23bf4
commit 4fc177d5ae
6 changed files with 61 additions and 1 deletions

View File

@@ -40,6 +40,8 @@ getJasmineRequireObj().pp = function(j$) {
this.emitSet(value);
} else if (j$.getType_(value) == '[object Map]') {
this.emitMap(value);
} else if (j$.isTypedArray_(value)) {
this.emitTypedArray(value);
} else if (value.toString && typeof value === 'object' && !j$.isArray_(value) && hasCustomToString(value)) {
this.emitScalar(value.toString());
} else if (j$.util.arrayContains(this.seen, value)) {
@@ -210,6 +212,18 @@ getJasmineRequireObj().pp = function(j$) {
this.append(' })');
};
StringPrettyPrinter.prototype.emitTypedArray = function(arr) {
var constructorName = j$.fnNameFor(arr.constructor),
limitedArray = Array.prototype.slice.call(arr, 0, j$.MAX_PRETTY_PRINT_ARRAY_LENGTH),
itemsString = Array.prototype.join.call(limitedArray, ', ');
if (limitedArray.length !== arr.length) {
itemsString += ', ...';
}
this.append(constructorName + ' [ ' + itemsString + ' ]');
};
StringPrettyPrinter.prototype.formatProperty = function(obj, property, isGetter) {
this.append(property);
this.append(': ');