chore(release): 0.1.5 - #20
Merged
Merged
Conversation
Fixes a startup crash introduced in 0.1.4. On an app whose styling library owns the element factory - anything built on css-interop - patching React.createElement routed every createElement call in the process, React's internals included, through machinery the host wrote for its own calls, and the heap grew until Hermes aborted. 0.1.3 never hit this because the assignment threw before it could take effect. That patch is now skipped once `jsxRuntimes` says where the app's elements come from. Nothing is lost: under the automatic JSX transform such an app never calls React.createElement, and the declared runtime is what records taps. Apps that declare nothing keep the previous behaviour. Also carries two corrections to how the property was replaced - an accessor is left to the host, and the saved original now comes from the same object the replacement lands on - which were needed but not sufficient on their own. Verified on a simulator release build of a css-interop based app: it starts, reports views and resources, and records taps.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Version bump only — no functional change on top of what is already on
publish.Ships the startup-crash fix from #19, plus the two property-replacement corrections from #18 that were necessary but not sufficient.
What 0.1.4 broke: on an app whose styling library owns the element factory (anything built on css-interop, e.g. nativewind), patching
React.createElementrouted everycreateElementcall in the process — React's own internals included — through machinery the host wrote for its own calls. The heap grew until Hermes aborted at startup. 0.1.3 never hit this because the assignment threw before it could take effect; 0.1.4 removed that exception and the factory got replaced for the first time.Verified end to end on a simulator release build of a css-interop based app, with the 0.1.4 build as the negative control:
hermes::vm::GCBase::oom→ SIGABRTTaps observed on the fixed build:
t_actionsrows of typetapacross/login,/incidentand an incident detail view, with matchingview_action_count../check-version-matches-tag.sh 0.1.5passes for all 13 declarations, including the two nativeSdkVersionfiles that feed_dd.sdk_version. Changed file set matches the previous release commit exactly.lerna run preparesucceeds for all 9 projects — the gate that 0.1.4's first attempt failed on.Merging this, then pushing tag
v0.1.5, triggers the publish workflow.