ringabout
98131a9fa1
fixes #25751 ; JS backend crashes when returning Option[T] with custom =destroy ( #25752 )
...
fixes #25751
This pull request improves the JavaScript backend code generation and
expands test coverage, particularly around temporary and loop variables,
as well as object destruction behavior. The main changes include
updating the code generator to handle more symbol kinds and adding tests
to ensure proper destruction and option handling.
**JavaScript code generation improvements:**
* Updated `genSymAddr` in `compiler/jsgen.nim` to support additional
symbol kinds, specifically `skTemp` and `skForVar`, ensuring correct
address generation for temporaries and loop variables.
**Test suite enhancements:**
* Added tests in `tests/js/test2.nim` to verify correct behavior of
option types, object destruction (`=destroy`), and to check for
backend-specific crashes. This includes printing results of
option-returning functions and confirming destruction messages.
* Updated expected output in `tests/js/test2.nim` to include results
from new tests and destruction messages, ensuring the test suite
reflects the latest code behavior.
2026-04-18 09:40:55 +02:00
..
2026-01-16 12:19:17 +01:00
2025-11-13 21:31:24 +01:00
2023-08-06 14:26:21 +02:00
2023-12-15 10:20:57 +01:00
2026-03-23 09:35:30 +01:00
2026-03-19 21:25:11 +01:00
2025-12-01 22:59:12 +01:00
2026-03-15 07:57:16 +01:00
2024-04-16 12:46:59 +02:00
2024-07-12 15:23:09 +02:00
2023-10-11 17:44:14 +02:00
2026-02-10 13:21:35 +01:00
2024-11-19 08:51:54 +01:00
2026-01-05 15:21:59 +01:00
2024-11-18 17:34:37 +01:00
2024-11-18 17:34:37 +01:00
2026-04-15 14:57:57 +02:00
2026-04-15 14:57:57 +02:00
2026-04-02 07:19:43 +02:00
2022-11-30 21:51:13 +01:00
2025-10-06 21:55:31 +02:00
2026-04-16 12:29:09 +08:00
2024-11-18 17:34:37 +01:00
2024-11-18 17:34:37 +01:00
2026-04-02 07:19:43 +02:00
2025-03-10 11:20:44 +01:00
2026-04-02 07:19:43 +02:00
2025-12-29 00:20:33 +01:00
2025-12-11 18:22:38 +01:00
2026-03-16 16:56:18 +01:00
2024-03-28 11:04:12 +01:00
2026-03-27 10:19:35 +01:00
2023-06-18 16:06:14 +02:00
2025-12-31 13:33:57 +01:00
2026-02-01 17:06:33 +01:00
2017-01-07 22:35:09 +01:00
2022-06-10 20:40:08 +02:00
2023-10-29 14:48:11 +01:00
2026-01-22 04:26:20 +01:00
2026-02-10 13:21:35 +01:00
2023-08-06 14:26:21 +02:00
2026-03-27 10:20:10 +01:00
2025-11-13 21:31:24 +01:00
2023-11-20 21:12:13 +01:00
2025-12-11 18:22:38 +01:00
2025-12-11 18:22:38 +01:00
2024-08-28 20:46:36 +02:00
2025-07-14 23:14:06 +02:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2025-12-11 18:22:38 +01:00
2025-11-21 21:26:43 +01:00
2023-10-29 14:48:11 +01:00
2026-01-22 04:26:20 +01:00
2020-06-01 19:21:41 +02:00
2026-03-07 15:10:01 +01:00
2025-11-25 12:49:23 +01:00
2025-10-13 13:47:06 +02:00
2026-04-02 07:19:43 +02:00
2024-12-27 19:42:18 +01:00
2026-04-18 09:40:55 +02:00
2025-07-14 23:15:44 +02:00
2026-04-10 15:29:20 +02:00
2026-04-02 07:19:43 +02:00
2023-12-13 10:39:10 +01:00
2026-01-23 22:50:00 +01:00
2026-04-13 18:02:53 +08:00
2025-12-11 18:22:38 +01:00
2026-03-19 07:39:18 +01:00
2026-01-23 22:50:00 +01:00
2026-04-02 07:19:43 +02:00
2026-01-16 12:19:17 +01:00
2025-12-11 18:22:38 +01:00
2021-01-12 09:36:51 +01:00
2026-03-07 07:39:57 +01:00
2026-01-16 12:19:17 +01:00
2024-04-05 08:54:48 +02:00
2026-03-19 07:35:24 +01:00
2026-01-09 13:10:04 +01:00
2025-11-13 21:31:24 +01:00
2026-02-10 13:21:35 +01:00
2026-03-24 21:34:46 +08:00
2026-02-07 20:46:50 +01:00
2025-12-11 18:22:38 +01:00
2026-02-24 09:40:21 +01:00
2026-01-07 13:45:26 +01:00
2023-12-15 08:13:25 +01:00
2025-10-23 09:05:05 +02:00
2025-11-13 21:31:24 +01:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2025-12-11 18:22:38 +01:00
2023-10-29 14:48:11 +01:00
2024-08-12 15:33:26 +02:00
2023-04-17 20:55:22 +02:00
2025-04-03 12:54:00 +02:00
2026-02-10 00:04:11 +01:00
2023-08-06 14:26:21 +02:00
2025-11-13 21:31:24 +01:00
2025-09-24 06:29:57 +02:00
2025-07-14 23:15:02 +02:00
2022-08-24 09:44:16 +02:00
2026-01-16 12:19:17 +01:00
2023-10-29 14:48:11 +01:00
2025-04-12 08:39:11 +02:00
2026-01-24 06:07:41 +01:00
2023-03-03 07:36:38 +01:00
2025-10-13 13:47:06 +02:00
2018-05-27 19:19:12 +02:00
2026-02-10 13:21:35 +01:00
2023-10-29 14:48:11 +01:00
2024-04-10 14:41:16 +02:00
2024-09-03 09:19:52 +02:00
2023-07-02 22:36:05 +02:00
2026-04-16 09:44:58 +02:00
2023-10-29 14:48:11 +01:00
2025-04-12 08:39:11 +02:00
2023-11-06 18:33:28 +01:00
2023-08-10 14:26:40 +02:00
2020-09-11 01:04:07 +02:00
2026-02-10 00:04:11 +01:00
2026-02-10 13:21:35 +01:00
2026-04-09 20:44:35 +02:00
2026-04-18 08:52:31 +02:00
2026-04-17 10:00:00 +02:00
2025-12-11 18:22:38 +01:00
2025-12-30 23:09:01 +01:00
2025-12-11 18:22:38 +01:00
2025-12-26 21:59:38 +01:00
2025-12-11 18:22:38 +01:00
2026-04-12 07:05:48 +02:00
2025-12-11 18:22:38 +01:00
2025-12-11 18:22:38 +01:00
2026-04-13 18:02:53 +08:00
2026-04-18 08:52:31 +02:00
2022-12-11 16:58:50 +01:00
2026-01-16 12:19:17 +01:00
2026-04-18 08:52:31 +02:00
2026-02-24 10:47:14 +01:00
2026-02-13 22:59:21 +01:00
2026-04-09 20:44:35 +02:00
2025-12-26 21:59:38 +01:00
2025-12-11 18:22:38 +01:00
2024-03-16 08:35:18 +08:00
2026-02-10 13:21:35 +01:00
2025-12-29 13:52:22 +01:00
2025-07-18 08:44:36 +02:00
2024-04-10 14:41:16 +02:00
2023-08-10 14:26:40 +02:00
2026-04-17 09:59:22 +02:00
2025-04-12 08:39:11 +02:00
2025-12-31 13:33:57 +01:00
2026-03-30 15:09:11 +02:00
2026-03-20 07:07:26 +01:00
2026-04-02 11:46:49 +02:00
2023-10-29 14:48:11 +01:00
2025-11-13 21:31:24 +01:00
2026-02-10 13:21:35 +01:00
2023-12-12 16:54:50 +01:00
2025-12-25 00:04:18 +01:00
2026-03-09 11:59:12 +01:00
2026-04-01 00:24:06 +02:00
2023-08-10 14:26:40 +02:00
2024-04-10 14:41:16 +02:00
2025-05-10 08:26:21 +02:00
2025-11-13 21:31:24 +01:00
2026-01-16 12:19:17 +01:00
2023-12-25 07:12:54 +01:00