Entfernen von toten Codes aus Switch-Fällen in JavaScript

8

Sorgt jeder Kompressor dafür, dass die Schaltergehäuse, die nirgendwo in der Anwendung aufgerufen werden, entfernt werden?

%Vor%

Wenn das obige alles ist, dann sind die Fälle 0,2,3 theoretisch tot und werden niemals ausgeführt. Hat irgendein Kompressor die Intelligenz, diesen Code zu entfernen, wenn er Code verkompliziert?

Ich schaue mir einen Code an, der in einer switch-Anweisung über 200.000 Fälle enthält, und daher die Frage.

Danke, -Vikrant

    
v2b 26.07.2013, 18:25
quelle

2 Antworten

3

Nein, mein Herr,

Da id eine Variable ist, wird kein Kompressor "wissen", dass dies nicht passieren kann. Die Kompressoren analysieren keine Variablenwerte in Schaltanweisungen und wissen, wie sie entfernt werden.

Wenn Sie "wissen", dass diese Fälle nicht passieren, entfernen Sie sie einfach selbst.

    
nativist.bill.cutting 26.07.2013, 18:28
quelle
3

Nichts wird Ihnen definitiv eine Liste von Dead-Case-Aussagen geben. Wenn es das sagt, gibt es entweder keine Möglichkeit eines anderen Wertes (endlicher Code-Verzweigung) oder es liegt. Wenn Sie also nicht jeden möglichen Wert kennen, der an execute_case weitergegeben werden kann, sind Sie im Dunkeln. (Und ich nehme an, Sie haben die Frage nicht gestellt).

Was Sie können tun, ist, einen kleinen Logger in diesen Code zu platzieren, der die an diesen Switch übergebenen Werte ausgibt / aufzeichnet. Dann, über [eine gute Menge] Zeit und / oder mehrere tausend Ausführungen, verfolgen, welche getroffen werden und welche nicht. Ich würde nicht unbedingt diejenigen entfernen, die nicht getroffen werden, aber versuche vielleicht, sie abzulehnen und auf eine längere Dauer / mehr Ausführungen zu warten, bis du zu dem Schluss kommst, dass es nicht mehr notwendig ist.

    
Brad Christie 26.07.2013 18:35
quelle