Search Issue Tracker

By Design

Votes

2

Found in

2018.4

2019.3.4f1

2020.2

Issue ID

1260637

Regression

No

[WebGL] Misleading JSON parse errors are thrown when Javascript interop crashes on unicode chars

WebGL

-

Reproduction steps:
1. Open the attached project ("case_1260637-unicode-javascript.zip")
2. Switch the build target to WebGL
3. Make a build and run it in browser

Expected result: No errors are thrown (or errors explain the real issue)
Actual result: "ArgumentException: JSON parse error: Missing a comma or '}' after an object member." error is thrown, even though the JSON file is correct

Reproducible with: 2018.4.25f1, 2019.4.4f1, 2020.1.0b16, 2020.2.0a18

  1. Resolution Note (2020.2.X):

    Problem with user code:

    stringToUTF8(returnStr, buffer, returnStr.length + 1);

    is incorrect. For stringToUTF8(), you need to pass the maximum number of bytes that are allowed to be written as the last parameter, but here the actual character length of the string + 1 is being passed. Since the character 'é' takes up two bytes, the code ends up swallowing one byte from the output, which caused the '}' to be dropped.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.