blob: f90690a9fec427ff35ae46f919f2a3757e5a4db2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
instruction: 0.994
network: 0.989
socket: 0.987
vnc: 0.985
device: 0.979
other: 0.950
graphic: 0.931
semantic: 0.879
mistranslation: 0.869
boot: 0.868
KVM: 0.714
assembly: 0.409
tcg bug master / 4.0.0 v8 operation >>> and |=
vm guest is linux, executed with tcg
running this Node.js snippet leads to
$ node
> a = undefined
undefined
> a >>> 0
4294967295
host node
$ node
> a = undefined
undefined
> a >>> 0
0
same with |=
node
Welcome to Node.js v12.4.0.
Type ".help" for more information.
> let buffer
undefined
> buffer |= 0
0
vm with tcg:
$ ./out/Release/node --version
v12.4.0
./out/Release/node -e "let buffer; buffer |= 0; console.log(buffer);"
-1
vm guest is debian x86_64 latest release
vm guest is started with ./x86_64-softmmu/qemu-system-x86_64 -vnc :0 -cdrom debian-9.9.0-amd64-netinst.iso -m 4G -smp cores=6,threads=1,sockets=1 -nic user,hostfwd=tcp:ipv4addr:2233-:22 -cpu qemu64 debian.img
git tag v4.0.0 and master, commit a578cdfbdd8f9beff5ced52b7826ddb1669abbbf, for building qemu-system-x86_64 was used.
Node.js as compiled on the vm guest (v12.4.0 / master)
see also
https://github.com/nodejs/node/issues/19348#issuecomment-500465502
I need further assistance to track down the cause of the bug.
Kind regards
Manuel
This might be the same underlying problem as LP:1815423 which also mentions some issues with Javascript calculations involving arithmetic operations on a js "undefined" value. That bug has a C-only reproduce case so is probably a good place to start for anybody interesting in investigating and fixing it.
https://<email address hidden>/ is a patch which I think probably fixes this bug -- could you test it? (I don't have an x86 vm with node.js in it to test with.)
Hi Peter,
I will try the tag and report back.
result:
node
Welcome to Node.js v12.4.0.
Type ".help" for more information.
> a = undefined
undefined
> a >>> 0
0
> let buffer
undefined
> buffer |= 0
0
Thanks for the patch :-)
Thanks a lot for testing it!
Patch had been included here:
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=1e8a98b53867f61da9c
|