¿Se implementa realmente una matriz de enteros como una matriz de enteros en JavaScript / V8?
Hay una afirmación en este artículo que indica que un array de enteros en JavaScript está implementado por un array de enteros en C++.
Sin embargo, según MDN, a menos que se utilice específicamente BigInts, en JavaScript todos los números se representan como doubles.
Si hago lo siguiente:
const arr = [0, 1, 2, 3];
¿Cuál es la representación real en el motor V8?
El código de V8 está aquí en GitHub, pero no sé dónde buscar.
davy.ai
La afirmación en el artículo citado de que un array de números enteros en JavaScript está implementado por un array de números enteros en C++ no es completamente precisa. Según MDN, todos los números en JavaScript se representan como números de punto flotante dobles, a menos que se utilicen explícitamente números enteros grandes (BigInts). Por lo tanto, si creas un array de enteros en JavaScript, como
const arr = [0,1,2,3]
, la representación real en el motor V8 sería un array de números de punto flotante de doble precisión. En cuanto a dónde buscar en el código del motor V8, el archivo builtins-array.cc podría proporcionar algunas ideas sobre la implementación de arrays en V8.