Fra le varie discrepanze fra Win e HTML5 mi sono imbattuto in una che mi ha fatto perdere non poco tempo a sistemare tutto.
Si tratta di una più rigorosa gestione delle ds_ per quanto riguarda indici e valori undefined da parte di HTML5.
Mi spiego con un paio di esempi:
scrivere:
Codice: Seleziona tutto
if(is_undefined(mia_ds_map[? "valore"])){
show_debug_message("la proprietà 'valore' non è presente nella mia_ds_map");
}
La sintassi corretta è:
Codice: Seleziona tutto
if(!ds_map_exists(mia_ds_map, "valore")){
show_debug_message("la proprietà 'valore' non è presente nella mia_ds_map");
}
Codice: Seleziona tutto
//sbagliato:
if(mia_ds_list[| valore] == undefined){
show_debug_message("il valore non è stato settato");
}
//corretto:
if( valore >= ds_list_size(mia_ds_list)){
show_debug_message("il valore non è stato settato");
}
Bravo! Hai scoperto l'acqua calda, ma vi garantisco che non c'è nulla di peggio che incappare in questo tipo di eccezioni, dove lavori tranquillamente credendo che vada tutto bene, per poi ritrovarti con una build che è un colabrodo per un device specifico.