Skip to content

Part 1 of core architecture fix - #881

Open
lee00678 wants to merge 3 commits into
mainfrom
feat/part-I-878
Open

Part 1 of core architecture fix#881
lee00678 wants to merge 3 commits into
mainfrom
feat/part-I-878

Conversation

@lee00678

Copy link
Copy Markdown
Collaborator

rokotyan and others added 3 commits August 10, 2026 14:31
…empty aliasing

The class instance check tested the whole source object instead of the value
under the current key, assigning the entire object to every merged key for
class instance configs. cloneDeep already copies class instances by reference,
so the branch is removed in favor of the default path.

merge() now also returns a clone (instead of the original reference) when
there is nothing to merge, so callers can never mutate a shared default config.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…without a config

Components created without a config kept the module-level default config
object as their own (via the `config = this._defaultConfig` initializer),
so any mutation of `instance.config` polluted every other instance of the
same component class (e.g. XYContainer setting `xAxis.config.type`).

Constructors now always call `setConfig()`, which produces a private merged
clone of the defaults. `XYComponentCore.setConfig` and `LeafletMap.setConfig`
were hardened to tolerate an undefined config argument.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lee00678 lee00678 changed the title Part 1 of core architecture fix: Part 1 of core architecture fix Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants