From 491de8bfa7c0f97b464aa908018d04b0185845ab Mon Sep 17 00:00:00 2001 From: salano_ym <53254905+salano-ym@users.noreply.github.com> Date: Tue, 23 Apr 2024 10:38:51 +0000 Subject: [PATCH 1/3] =?UTF-8?q?arr.sort=E3=81=A7=E8=A1=8C=E3=82=8F?= =?UTF-8?q?=E3=82=8C=E3=82=8B=E5=88=86=E5=89=B2=E3=81=95=E3=82=8C=E3=81=9F?= =?UTF-8?q?=E5=90=84=E3=82=BD=E3=83=BC=E3=83=88=E3=82=92=E9=9D=9E=E5=90=8C?= =?UTF-8?q?=E6=9C=9F=E5=87=A6=E7=90=86=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/interpreter/primitive-props.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/interpreter/primitive-props.ts b/src/interpreter/primitive-props.ts index 911313ac..9bc03ee5 100644 --- a/src/interpreter/primitive-props.ts +++ b/src/interpreter/primitive-props.ts @@ -231,8 +231,9 @@ const PRIMITIVE_PROPS: { const mergeSort = async (arr: Value[], comp: VFn): Promise => { if (arr.length <= 1) return arr; const mid = Math.floor(arr.length / 2); - const left = await mergeSort(arr.slice(0, mid), comp); - const right = await mergeSort(arr.slice(mid), comp); + const left_promise = mergeSort(arr.slice(0, mid), comp); + const right_promise = mergeSort(arr.slice(mid), comp); + const [left, right] = await Promise.all([left_promise, right_promise]); return merge(left, right, comp); }; const merge = async (left: Value[], right: Value[], comp: VFn): Promise => { From 2b1fd0ca9ed5c212ff0d2356e77bcfc27b9d9d4b Mon Sep 17 00:00:00 2001 From: salano_ym <53254905+salano-ym@users.noreply.github.com> Date: Tue, 23 Apr 2024 10:39:15 +0000 Subject: [PATCH 2/3] update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89464f88..a99d0f5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - `Date:millisecond`を追加 - `arr.fill`, `arr.repeat`, `Arr:create`を追加 - JavaScriptのように分割代入ができるように(現段階では機能は最小限) +- `arr.sort`の処理を非同期的にして高速化 # 0.17.0 - `package.json`を修正 From 32a8d66505553282089a8fbfe48c79cdd7ca04fb Mon Sep 17 00:00:00 2001 From: salano_ym <53254905+salano-ym@users.noreply.github.com> Date: Thu, 25 Apr 2024 16:43:26 +0000 Subject: [PATCH 3/3] fix CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d04db96d..6bd27575 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ [Read translated version (en)](./translations/en/CHANGELOG.md) # 未リリース分 +- `arr.sort`の処理を非同期的にして高速化 # 0.18.0 - `Core:abort`でプログラムを緊急停止できるように @@ -14,7 +15,6 @@ - ネストされた名前空間下の変数を参照できるように - `arr.every`, `arr.some`を追加 - `Date:to_iso_str`を追加 -- `arr.sort`の処理を非同期的にして高速化 # 0.17.0 - `package.json`を修正