-
-
Notifications
You must be signed in to change notification settings - Fork 407
refactor(clone): type-driven clone defaults with honor-or-throw decorators #3040
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
cptbtptpbcptdtptp
wants to merge
112
commits into
galacean:dev/2.0
Choose a base branch
from
cptbtptpbcptdtptp:fix/clone-opt-out-assignment
base: dev/2.0
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
112 commits
Select commit
Hold shift + click to select a range
79e9105
refactor(clone): add @defaultCloneMode and type-driven clone for cont…
a22e83c
refactor(clone): rewrite clone system — opt-out + default Assignment …
afce33d
refactor(clone): mark value-semantic classes with @defaultCloneMode(D…
94e6a03
fix(clone): remap nested Entity/Component refs via two-pass clone
a0e5fa9
refactor(clone): three-tier mode resolution + container default deep
297508f
refactor(clone): drop 171 field clone-mode decorators, rely on type d…
c5d6257
Merge remote-tracking branch 'upstream/dev/2.0' into fix/clone-opt-ou…
00498a1
ci: shard codecov unit tests (4 shards) to avoid browser crash on ful…
1561b72
docs(clone): drop CLONE_OPT_IN_AUDIT.md; design moved to PR description
d196914
ci: split codecov into 8 shards (vitest browser WebGL resource ceiling)
3cdd18c
test(clone): regression for texture refCount balance on clone/destroy
b8e754c
ci: revert codecov sharding experiment (let GitHub run the original f…
2139275
refactor(clone): decouple ref counting from the clone gate and unify …
13f3d95
Merge branch 'dev/2.0' into fix/clone-opt-out-assignment
9c5469c
refactor(clone): slot-ownership ref counting — gate acquires, owner r…
c2790dd
test(clone): refCount lifecycle suites + fix particle MeshShape mesh …
60135e9
refactor(clone)!: remove the deprecated shallowClone decorator
2a4309e
style(clone): order CloneManager members by visibility
88625db
refactor(clone): exempt user scripts from gate ref counting
2239fbd
refactor(clone): one uniform slot contract — no script special-casing
c7df2af
refactor(clone): move slot-ownership acquisition out of the gate
84e1b76
docs(clone): clarify the @deepClone-on-Remap branch is error recovery
3c26c2a
docs(clone): condense the CloneManager class comment
5b8da5a
test(clone): pin aliasing topology — shared instance clones into one …
e5894ae
refactor(clone): drop _cloneTo logic the type-driven gate already covers
8ef2a64
fix(mesh): type _onSkinUpdated's value as the union it actually carries
158fbdc
refactor(math): add a MathValue base class carrying the family clone …
1be50b0
Revert "refactor(math): add a MathValue base class carrying the famil…
5e3738d
test(clone): guard math value-type registration completeness
7dba7c1
feat(math): implement IClone/ICopy on Ray and register it Deep
de460e8
fix(clone): treat null-prototype objects as data containers
6c4cbb7
fix(clone): @deepClone on a registered asset recovers to sharing
56fb595
docs(clone): tighten comments in CloneManager and ComponentCloner
6a8688e
feat(clone): register runtime containers @defaultCloneMode(Ignore)
a3510d4
refactor(clone): drop @ignoreClone on runtime-container typed fields
887bfcc
docs(clone): define Deep as structure-fresh, member-semantic cloning
83e8328
docs(clone): correct stale or vacuous comments in gate and cloner
bdcc635
refactor(ui): centralize transition state ref counting in the base class
81c7991
test(math): cover Ray clone and copyFrom
e696681
fix(clone): release an owned counted preset displaced by an uncounted…
b0064ab
fix(clone): register typed-array clones in the identity map and harde…
d095812
fix(clone): route copyFrom dispatch after containers and close review…
6d0c7fe
test(clone): cover the rewritten Skin, PostProcess and TrailRenderer …
78ec199
docs(clone): align clone guides with the type-driven mechanism
9fa3cc2
refactor(clone): settle slot ownership unconditionally and fold dupli…
23f0459
test(clone): rename the suite after CloneManager and fix stale attrib…
2a91917
perf(clone): iterate Map/Set with for-of to avoid per-clone closure a…
c13dd08
docs(clone): drop a change-narrating comment on the Map branch
6d724c7
docs(clone): drop tense-relative wording from a lifecycle test comment
828008f
fix(particle): allow bare construction of ParticleCompositeGradient
16d95d6
test(clone): enforce the bare-construction contract for Deep-register…
f58d380
feat(clone): name the bare-construction contract when a deep clone ca…
843ab78
test(clone): pin the host-bound-in-container rejection as intended se…
9db6c66
test(clone): pin both host-bound-in-container behaviors by component …
f8ad0d7
fix(shader): cascade texture-array entries through the ref-count cont…
7ba6d16
Merge remote-tracking branch 'origin/dev/2.0' into fix/clone-opt-out-…
7027eec
test(clone): pin upstream orbital fields deep-cloning via the type de…
ec48059
test(clone): fix orbital pin to use the public centerOffset accessor
cd3bad1
docs(clone): document defaultCloneMode registration for custom types
033f938
refactor(clone): fold Deep registration into a public DataObject base…
aea87ef
refactor(clone): replace the marker decorator with an instanceof defa…
36f7446
perf(clone): let DataObject.clone() skip mode resolution it already k…
bcf668f
refactor(clone): collapse mode-then-switch into decide-and-execute
5d27b6f
test(clone): cover @ignoreClone on a function field (previously untes…
f0262a4
refactor(clone): replace the field-mode registry with prototype-chain…
cf90bd6
refactor(clone): unify the two ad hoc _isDeepCloneType stamping sites
60e5cd3
fix(clone): fix three bugs in the DataObject template-method rewrite
6f72fb4
refactor(clone): shrink DataObject to a bare instanceof marker class
f8d2ff1
refactor(clone): split _deepClone into a dispatcher plus per-shape me…
13f1b11
refactor(clone): dispatch directly by type, dropping _isContainer + _…
86f4bef
refactor(clone): inline per-shape clone; fix @deepClone on a default-…
ec3e90b
fix(clone): throw on @deepClone of an engine-bound type instead of fa…
c547a03
refactor(clone): split execution into CloneUtil, drop the injection s…
9ee44e3
refactor(clone): drop the unused CloneMode.Remap member
7e46e9f
refactor(clone): fold the deep-clone assertion back into the type bra…
7248f0a
refactor(clone): name CloneUtil parameters source / preset consistently
4f86f9f
refactor(clone): inline the remap-type check into Signal, drop the de…
3a73a7c
refactor(clone): rename _cloneByType to _cloneByDefault
55f0009
fix(core): type UpdateFlagManager dispatch param as unknown, not object
62b9a3b
fix(clone): dedup per producing branch, not before the type dispatch
5509233
refactor(clone): flatten _cloneByDefault into one dispatch chain
09fdbd5
docs(clone): strip restating JSDoc from internal methods
f6ee729
style(clone): use the multi-line @internal block on methods
cdb0d1b
refactor(clone): prefix deepCloneObject with an underscore
6d20862
fix(clone): check the function branch before the non-object guard
7a1be3d
refactor(clone): replace the fieldMode switch with a guard and a deri…
08bab73
test(clone): reach the field walk through the public API, unexport Cl…
e663cb2
refactor(particle): let the gate clone CustomDataModule's streams
44756d8
test(particle): assert cloned custom-data streams field by field
aa8f4e8
docs(clone): state constraints instead of narrating the change
5ffb29d
fix(core): drop @internal from DataObject so its declaration survives
68616fc
docs(clone): drop comments restating gate behavior at call sites
1d554f6
docs(clone): drop the gate explanation from SubEmitter's back-link
0494dca
docs(clone): drop the _createCloneEntity block comment
030825f
docs(clone): drop remaining comments that restate the code
702d1a7
perf(clone): walk own keys instead of for...in
636d19d
docs(clone): cut comments down to the non-derivable constraints
a97b5b4
docs(clone): drop the remaining inline comments
a1eb05c
refactor(shader): make _addTexturesReferCount an instance method
9be79cf
docs(clone): drop narrative comments from Signal and Transition
36472b3
fix(clone): let @deepClone override the plain-container default
b0f8226
refactor(clone): fold the two cloning branches into one
3d06a6d
refactor(clone): extract the construct-and-register step
7295735
refactor(clone): rename _deepConstructObject to _createCloneTarget
dbb7624
docs(clone): document the deep-default opt-ins, fix the release guidance
983fe59
fix(core): stop re-exporting the stripped CloneManager class
a4dc14b
docs(clone): close the review-found gaps in the rules
f37945f
test(clone): pin the review-found contract gaps
64410a6
feat(clone): @deepClone deep-clones the whole subtree
8a95423
style(docs): run prettier over the clone pages
118a7a5
fix(clone): throw on @deepClone decorating a function
c61e068
refactor(clone): rename the assert and trim comments
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.