From 067a3441b30ee36e02e2d0bf7b8a0809078fee4c Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 5 Feb 2024 12:15:27 +1300 Subject: [PATCH] Fix text --- ghcjs-base.cabal | 3 ++- jsbits/text.js | 25 +++++-------------------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/ghcjs-base.cabal b/ghcjs-base.cabal index 526699f..c6da100 100644 --- a/ghcjs-base.cabal +++ b/ghcjs-base.cabal @@ -143,7 +143,8 @@ library ghc-prim, binary >= 0.8 && < 0.11, bytestring >= 0.10 && < 0.13, - text >= 1.1 && < 2.2, + -- text internals need to be utf8 (text <2.0 is utf16) + text >= 2.0 && < 2.2, aeson >= 0.8 && < 2.3, scientific >= 0.3.7 && < 0.4, vector >= 0.10 && < 0.14, diff --git a/jsbits/text.js b/jsbits/text.js index e55c952..e5ef45a 100644 --- a/jsbits/text.js +++ b/jsbits/text.js @@ -6,21 +6,7 @@ convert a Data.Text buffer with offset/length to a JavaScript string */ function h$textToString(arr, off, len) { - var a = []; - var end = off+len; - var k = 0; - var u1 = arr.u1; - var s = ''; - for(var i=off;i=0;i--) u1[i] = s.charCodeAt(i); - RETURN_UBX_TUP2(b, l); + var encoder = new TextEncoder("utf-8"); + u8 = encoder.encode(s); + b = h$wrapBuffer(u8.buffer, true, u8.byteOffset, u8.byteLength); + RETURN_UBX_TUP2(b, u8.byteLength); } function h$lazyTextToString(txt) {