Как стать автором
Обновить

Аномальное поведение Flash Player 11 в зависимости от того, дебаговый плеер или нет

Время на прочтение1 мин
Количество просмотров1.4K
После обновления на 11 плеер мы поймали очень странный баг.

Данный баг проявлялся только в не-дебаг версии плеера. То есть когда запускаешь swf-ку в дебаговом 11-м плеере — все нормально, а когда в нормальном — ничего не работает.
Искать проблему пришлось с помощью ExternalInterface и JavaScript консоли браузера.

В итоге проблема оказалась в следующем. В не-дебаговой версии Flash Player 11.0.1.152 вот это выражение:

1/Math.abs(0)

Внезапно стало равным -Infinity

А в дебаговой версии все оставалось в пределах нормальной картины мира: Infinity

Полный код примера для reproduce:

package {
  import flash.display.Sprite;
  import flash.external.ExternalInterface;
  public class MagicWorld extends Sprite {
      public function MagicWorld() {
          ExternalInterface.call(«alert», «1/Math.abs(0) = » + (1/Math.abs(0)).toString());
      }
  }
}

Убедиться можно вот здесть: batsuev.com/habr/fp11/MagicWorld.html (открыть в дебаговом и не-дебаговом 11-м плеере)

Ссылка на bugreport: bugbase.adobe.com/index.cfm?event=bug&id=3011557

Немного фана:
1/0 //Infinity
1/Math.abs(0) //-Infinity
0 == Math.abs(0) //true
1/0 == 1/Math.abs(0) //false

Будьте бдительны с этим Adobe.
Теги:
Хабы:
Всего голосов 39: ↑30 и ↓9+21
Комментарии40

Публикации