Commit Graph

3 Commits

Author SHA1 Message Date
Ulf Hermann 6b14ba5c2f QmlCompiler: Discern between different kinds of side effects
A mere jump does not cause all value types and lists to be invalidated.
Only calls to other functions or writes to other properties do that.

Pick-to: 6.10 6.9 6.8 6.5
Fixes: QTBUG-137540
Change-Id: I069c6873455c51bbea59cf876d2bc7ecd188f81b
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-06-23 15:44:42 +02:00
Ulf Hermann 32602bef7c QmlCompiler: Sharpen side effect detection
Stack-created lists of primitives or pointers cannot be affected by side
effects. We cannot write a value affected by side effects to a list that
isn't, though.

Pick-to: 6.10 6.9 6.8 6.5
Task-number: QTBUG-137540
Change-Id: I99ab4337cabc6111a81b8164fd94962edc0db25e
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-06-23 15:44:38 +02:00
Ulf Hermann 9035d1cb2a QmlCompiler: Restore support for writing to temporary arrays
We use the JavaScript extension as "read" type to signify that the code
generator will accept any type with such an extension. This requires
some adjustments in the type resolver.

Pick-to: 6.10 6.9 6.8 6.5
Task-number: QTBUG-137540
Change-Id: Ia34ca0a24c417c5372852268ba2f55825484639d
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-06-23 11:17:06 +02:00