package
{
    import flash.display.*;
    import flash.events.*;
    import flash.utils.*;
    import flash.ui.ContextMenu;
    import flash.ui.ContextMenuItem;


    public class contextmenucrash extends Sprite
    {
        public function contextmenucrash()
        {
            this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }

        private function enterFrameHandler(event:Event):void
        {
            // create a new ContextMenu every frame
            // (not a real life situation but the fastest way to demonstrate the crashing)
            create_new_contextmenu();
        }

        private function create_new_contextmenu():void
        {
            var cm:ContextMenu = new ContextMenu();

            cm.hideBuiltInItems();
            cm.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelect);

            this.contextMenu = cm;
        }

        private function contextMenu_menuSelect(event:ContextMenuEvent):void
        {
            // build a custom contextmenu
            var customItems:Array = new Array();

            var item:ContextMenuItem = new ContextMenuItem("crash now");
            customItems.push(item);

            this.contextMenu.customItems = customItems;
        }
    }
}