diff --git a/js/src/data.ts b/js/src/data.ts index cc689ffc15d46..e05b5aefff978 100644 --- a/js/src/data.ts +++ b/js/src/data.ts @@ -86,7 +86,7 @@ export class BaseData implements VectorLike { let nullCount = this._nullCount; let nullBitmap: Uint8Array | undefined; if (nullCount === -1 && (nullBitmap = this[VectorType.VALIDITY])) { - this._nullCount = nullCount = popcnt_bit_range(nullBitmap, this._offset, this._offset + this._length); + this._nullCount = nullCount = this._length - popcnt_bit_range(nullBitmap, this._offset, this._offset + this._length); } return nullCount; } diff --git a/js/src/type.ts b/js/src/type.ts index 4b317ed7fab5e..6f382bd5b2b05 100644 --- a/js/src/type.ts +++ b/js/src/type.ts @@ -201,7 +201,9 @@ export abstract class DataType implements Partial { TArray: void; TValue: null; } export class Null extends DataType { - constructor() { super(Type.Null); } + constructor() { + super(Type.Null); + } public toString() { return `Null`; } public acceptTypeVisitor(visitor: TypeVisitor): any { return visitor.visitNull(this); @@ -269,7 +271,9 @@ export class Float64 extends Float { constructor() { super(Precisi export interface Binary extends DataType { TArray: Uint8Array; TValue: Uint8Array; } export class Binary extends DataType { - constructor() { super(Type.Binary); } + constructor() { + super(Type.Binary); + } public toString() { return `Binary`; } public acceptTypeVisitor(visitor: TypeVisitor): any { return visitor.visitBinary(this); @@ -282,7 +286,9 @@ export class Binary extends DataType { export interface Utf8 extends DataType { TArray: Uint8Array; TValue: string; } export class Utf8 extends DataType { - constructor() { super(Type.Utf8); } + constructor() { + super(Type.Utf8); + } public toString() { return `Utf8`; } public acceptTypeVisitor(visitor: TypeVisitor): any { return visitor.visitUtf8(this); @@ -295,7 +301,9 @@ export class Utf8 extends DataType { export interface Bool extends DataType { TArray: Uint8Array; TValue: boolean; } export class Bool extends DataType { - constructor() { super(Type.Bool); } + constructor() { + super(Type.Bool); + } public toString() { return `Bool`; } public acceptTypeVisitor(visitor: TypeVisitor): any { return visitor.visitBool(this); @@ -325,7 +333,9 @@ export class Decimal extends DataType { /* tslint:disable:class-name */ export interface Date_ extends DataType { TArray: Int32Array; TValue: Date; } export class Date_ extends DataType { - constructor(public readonly unit: DateUnit) { super(Type.Date); } + constructor(public readonly unit: DateUnit) { + super(Type.Date); + } public toString() { return `Date${(this.unit + 1) * 32}<${DateUnit[this.unit]}>`; } public acceptTypeVisitor(visitor: TypeVisitor): any { return visitor.visitDate(this); @@ -485,7 +495,7 @@ export class Map_ extends DataType { public toString() { return `Map<${this.children.join(`, `)}>`; } public acceptTypeVisitor(visitor: TypeVisitor): any { return visitor.visitMap(this); } protected static [Symbol.toStringTag] = ((proto: Map_) => { - return proto[Symbol.toStringTag] = 'Map'; + return proto[Symbol.toStringTag] = 'Map_'; })(Map_.prototype); } diff --git a/js/src/vector/flat.ts b/js/src/vector/flat.ts index 800dbd5479145..a32bd9d397ff0 100644 --- a/js/src/vector/flat.ts +++ b/js/src/vector/flat.ts @@ -41,10 +41,10 @@ export class FlatView implements View { return this.values[index] = value; } public toArray(): IterableArrayLike { - return this.values; + return this.values.subarray(0, this.length); } public [Symbol.iterator](): IterableIterator { - return this.values[Symbol.iterator]() as IterableIterator; + return this.values.subarray(0, this.length)[Symbol.iterator]() as IterableIterator; } } @@ -152,7 +152,9 @@ export class PrimitiveView extends FlatView { return this.setValue(this.values, index, this.size, value); } public toArray(): IterableArrayLike { - return this.size === 1 ? this.values : new this.ArrayType(this); + return this.size > 1 ? + new this.ArrayType(this) : + this.values.subarray(0, this.length); } public *[Symbol.iterator](): IterableIterator { const get = this.getValue; diff --git a/js/src/vector/list.ts b/js/src/vector/list.ts index 0ea5a93befb73..3d365ceac29b2 100644 --- a/js/src/vector/list.ts +++ b/js/src/vector/list.ts @@ -65,7 +65,7 @@ export abstract class ListViewBase extends ListViewBase { constructor(data: Data) { - super(data) + super(data); this.length = data.length; this.valueOffsets = data.valueOffsets; }