Potrebbe essere possibile aggiungere il tipo intero allo standard ECMAScript?

2

In JavaScript, ogni numero che utilizzerai sarà sempre rappresentato con ciò che il programmatore C chiamerebbe double . Il tipo ufficiale è credo number . Se ricordo bene, questo fatto è stato citato da Google come un problema "fondamentale" con JavaScript e uno dei motivi per cui volevano avere una rottura netta con Dart. Ora, non posso fare a meno di chiedermi:

  • Lo standard ECMAScript può solo aggiungere quel tipo? Sarebbe possibile fare senza rompere il codice esistente?
  • In ogni caso, un motore JIT non può controllare l'utilizzo dei numeri interi e generare un codice che è quasi altrettanto efficiente di un tipo intero nativo, utilizzando registri interi e opcode?

In effetti: potrebbe essere fatto? Perché dovrebbe essere fatto?

    
posta Laurent Bourgault-Roy 15.07.2013 - 05:03
fonte

1 risposta

1

Per quanto riguarda il secondo punto, sì, l'uso di interi può essere rilevato. Firefox fa parte della loro funzione asm.js . Non è del tutto semplice: ad esempio, l'aggiunta di due numeri interi può traboccare. Non succederà se i valori sono stati aggiunti come doppio. Per tener conto di ciò, ogni espressione che dovrebbe produrre un vero int a 32 bit viene aggiunta con | 0 , che non fa altro che forzare il risultato a essere un int.

    
risposta data 15.07.2013 - 06:57
fonte

Leggi altre domande sui tag