From 9e9d0ee305b0e30ac69334c9f9ed2e0b3aa56163 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Fri, 12 Jun 2026 13:18:01 +0700 Subject: [PATCH] Fix pull request panel markdown on native --- .../src/components/markdown/html-ish.test.ts | 20 +++++++++++++++++++ .../app/src/components/markdown/html-ish.ts | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/app/src/components/markdown/html-ish.test.ts b/packages/app/src/components/markdown/html-ish.test.ts index 15faec407..ac6f2ad8b 100644 --- a/packages/app/src/components/markdown/html-ish.test.ts +++ b/packages/app/src/components/markdown/html-ish.test.ts @@ -242,6 +242,14 @@ describe("splitHtmlishMarkdown", () => { expect(splitHtmlishMarkdown(source)).toEqual([{ kind: "markdown", text: source }]); }); + it("keeps details inside inline code on native runtimes without copied array sorting", () => { + const source = "Use `
ExampleBody
` as an example."; + + expect(withoutArrayToSorted(() => splitHtmlishMarkdown(source))).toEqual([ + { kind: "markdown", text: source }, + ]); + }); + it("keeps details inside inline code as literal markdown", () => { const source = "Use `
ExampleBody
` as an example."; @@ -310,3 +318,15 @@ describe("splitHtmlishMarkdown", () => { ]); }); }); + +function withoutArrayToSorted(callback: () => T): T { + const descriptor = Object.getOwnPropertyDescriptor(Array.prototype, "toSorted"); + Reflect.deleteProperty(Array.prototype, "toSorted"); + try { + return callback(); + } finally { + if (descriptor) { + Reflect.defineProperty(Array.prototype, "toSorted", descriptor); + } + } +} diff --git a/packages/app/src/components/markdown/html-ish.ts b/packages/app/src/components/markdown/html-ish.ts index baaa121df..b68e734b5 100644 --- a/packages/app/src/components/markdown/html-ish.ts +++ b/packages/app/src/components/markdown/html-ish.ts @@ -681,7 +681,7 @@ function findClosingBacktickRun( } function mergeProtectedRanges(ranges: ProtectedMarkdownRange[]): ProtectedMarkdownRange[] { - const sorted = ranges.toSorted((a, b) => a.start - b.start); + const sorted = [...ranges].sort((a, b) => a.start - b.start); const merged: ProtectedMarkdownRange[] = []; for (const range of sorted) {