Appends a column to a series under name — the renderer path, where a
caller genuinely wants one TimeSeries carrying several studies.
A gapless column round-trips without boxing, via the column's own
Float64Array. A column with gaps cannot: core's withColumn takes
values, not a column, and rejects a non-finite cell, so a warm-up has
to be expressed as undefined in a boxed array. Core appends columns
directly internally (withColumnAppended) but does not expose it;
until it does, a gapped column pays one boxing pass here.
Since most studies have a warm-up, that fallback is the common case —
which is exactly why assembly should be requested rather than assumed
([PND-PROCTERM]). A facts-only request never calls this.
Appends a column to a series under
name— the renderer path, where a caller genuinely wants oneTimeSeriescarrying several studies.A gapless column round-trips without boxing, via the column's own
Float64Array. A column with gaps cannot: core'swithColumntakes values, not a column, and rejects a non-finite cell, so a warm-up has to be expressed asundefinedin a boxed array. Core appends columns directly internally (withColumnAppended) but does not expose it; until it does, a gapped column pays one boxing pass here.Since most studies have a warm-up, that fallback is the common case — which is exactly why assembly should be requested rather than assumed ([PND-PROCTERM]). A facts-only request never calls this.