8000 Merge pull request #1545 from gzm0/fix-nodejs-high-char · commonlisp/scala-js@285327a · GitHub
[go: up one dir, main page]

Skip to content

Commit 285327a

Browse files
committed
Merge pull request scala-js#1545 from gzm0/fix-nodejs-high-char
Fix scala-js#1536: NodeJSEnv is unable to send characters larger than 0x7FFF
2 parents dfafaa9 + fd57c36 commit 285327a

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

js-envs/src/main/scala/org/scalajs/jsenv/nodejs/NodeJSEnv.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ class NodeJSEnv private (
169169
var buf = new Buffer(4 + len * 2);
170170
buf.writeInt32BE(len, 0);
171171
for (var i = 0; i < len; ++i)
172-
buf.writeInt16BE(msg.charCodeAt(i), 4 + i * 2);
172+
buf.writeUInt16BE(msg.charCodeAt(i), 4 + i * 2);
173173
socket.write(buf);
174174
},
175175
close: function() {

js-envs/src/test/scala/org/scalajs/jsenv/test/ComTests.scala

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,23 @@ trait ComTests extends AsyncTests {
177177
com.await(DefaultTimeout)
178178
}
179179

180+
@Test
181+
def highCharTest = { // #1536
182+
val com = comRunner("""
183+
scalajsCom.init(scalajsCom.send);
184+
""")
185+
186+
com.start()
187+
188+
val msg = "\uC421\u8F10\u0112\uFF32"
189+
190+
com.send(msg)
191+
assertEquals(msg, com.receive())
192+
193+
com.close()
194+
com.await(DefaultTimeout)
195+
}
196+
180197
@Test
181198
def noInitTest = {
182199
val com = comRunner("")

0 commit comments

Comments
 (0)
0