V8/JS/ChromeDevTools Object keys horen geen Int te zijn

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
Wanneer je een (String) "nummer" als key gebruikt in een object, dan zou dit altijd een String moeten zijn.
Maar de Variables panel van Eclipse laat sommige nummers als String en sommigen als Int zien, waardoor de boel in de soep loopt.

Is er een logica die ik over het hoofd zie?

Zo wordt bijvoorbeeld
JavaScript:
1
2
3
4
var test = {
    "1000000000" : {},
    "8302611133" : {}
};

zonder verdere beweking intern opeens
JavaScript:
1
2
3
4
test = {
    "8302611133" : {},
    1000000000 : {}
};


Er is hier barweinig over te vinden op duckduckgo/google. Ik vermoed haast dat dit een bug is, maar aan de andere kant lijkt me dat een dergelijke constructie dermate vaak wordt gebruikt dat dit al eerder opgemerkt zou moeten zijn.

Daarom misschien dat ik (weer eens) een stukje kennis mis die een logische verklaring voor dit gedrag biedt.

Ik heb een wat gedetailleerdere testcase op stackoverflow gezet.

Iemand een idee?

🇪🇺 Buy from EU (GoT)


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28
Lijkt me over-optimalisatie van V8, maar echt een fijne werkwijze is dit natuurlijk ook niet. Beste kun je er dan gewoon even een letter voorzetten.

Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
Precies, dat is de workaround die ik nu toepas (potatoesalad). Maar vervelend is het wel, vooral omdat dit me geen zeldzame usecase lijkt.

Daarnaast lijkt het inmiddels alsof de javascript-app zelf geen problemen heeft, en dat de debugger dat wel heeft, terwijl zowel node als de chrome dev tools gebouwd zijn op de V8 engine, waardoor je verwacht dat ze hetzelfde gedrag zouden vertonen.

edit:

Als er logica in zat had ik inmiddels wel een stapel reacties op stackoverflow gekregen, dus volgens mij heb ik gewoon een bug gevonden.

Dan maar even een bugreportje. :)

https://bugs.eclipse.org/bugs/show_bug.cgi?id=388346

[ Voor 23% gewijzigd door Sando op 29-08-2012 16:51 ]

🇪🇺 Buy from EU (GoT)