javascript - 未定义 >>> 0 == 4294967295?

标签 javascript node.js cpu v8

在不同的机器上得到不同的结果,想知道这是否是预期的行为或在某些 CPU 的“>>>”操作实现中的潜在错误?

Linux qemux86-64 4.18.41-yocto-standard #1 SMP PREEMPT Tue Oct 8 20:33:31 UTC 2019 x86_64 GNU/Linux
root@qemux86-64:~# node --v8-options|head -n 1
SSE3=1 SSSE3=1 SSE4_1=0 SAHF=1 AVX=0 FMA3=0 BMI1=0 BMI2=0 LZCNT=0 POPCNT=0 ATOM=0
root@qemux86-64:~# node -v             
v8.12.0
root@qemux86-64:~# node -e 'console.log(undefined >>> 0)'
4294967295

(未定义 >>> 0) 计算结果为 0 在我测试过的其他机器上。
但是,然后使用 CPU 功能 启用 :
AVX FMA3 BMI1 BMI2 LZCNT POPCNT

最佳答案

V8 开发人员在这里。这显然是一个错误( undefined >>> 0 总是应该返回 0 ),但不清楚该错误可能在哪里:可能在 V8 中,可能在使用的 C++ 编译器中,可能在内核或系统库中,甚至可以在硬件中(或模拟器?主机名“qemux86-64”听起来可能是虚拟机);本身也可能不是一个错误,而更多的是这些组件之间的意外交互。 FWIW,我无法复制。

Node 8 也相当老了,所以首先要尝试的是更新的 Node/V8。也许它已经被修复了。

如果您仍然可以使用最新版本(例如,Node 12/V8 7.7 或更高版本)重现,请在 crbug.com/v8/new 提交错误并包括有关如何复制的说明。请随时在此处的评论中留下错误编号。

关于javascript - 未定义 >>> 0 == 4294967295?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58516702/

相关文章:

javascript - 本地服务器 (MAMP) 上的 TweenMax.js 未正确初始化 - 抛出错误

javascript - "display: none"流畅的动画

javascript - bootstrap popover 在 jquery 加载函数中不起作用

javascript - 如何使用 Uglify.js 为 Express.js 中的每个 View 连接 JavaScript

node.js - 注销后nodejs实际上并没有销毁 session

docker - 多个进程(在这种情况下为Pod)是否会提高处理速度?

python - 在运行 python 程序时,是否可以强制您的计算机投入更少的 CPU 来换取更多的时间?

javascript - 如何将CSS添加到jquery

javascript - 使用 Node.js,在 XMLHttpRequest 期间或之后创建一个新的 XMLHttpRequest

.net - 客户 PC 上的 CPU 卡在 100%,有任何调试建议吗?