Buggy code:
static int BrowserCount ; static boolean Initialized ; static boolean IsXULRunner ; static boolean Is_1_8 ; static final String GRERANGE_LOWER = "1.8.1.2" ; static final String GRERANGE_LOWER_FALLBACK = "1.8" ; static final boolean LowerRangeInclusive = true ; static final String GRERANGE_UPPER = "1.9" ; static final boolean UpperRangeInclusive = false ; static final String SEPARATOR_OS = System . getProperty ( "file.separator" ) ; static final String URI_FROMMEMORY = "file://////" ; static final String ABOUT_BLANK = "about:blank" ; static final String PREFERENCE_DISABLEOPENDURINGLOAD = "dom.disable_open_during_load" ; static final String PREFERENCE_DISABLEWINDOWSTATUSCHANGE = "dom.disable_window_status_change" ; static final String PREFERENCE_LANGUAGES = "intl.accept_languages" ; static final String PREFERENCE_CHARSET = "intl.charset.default" ; static final String SEPARATOR_LOCALE = "-" ; static final String TOKENIZER_LOCALE = "," ; static final String PROFILE_DIR = ( ( Mozilla . SEPARATOR_OS ) + "eclipse" ) + ( Mozilla . SEPARATOR_OS ) ; static final String PROFILE_AFTER_CHANGE = "profile-after-change" ; static final String PROFILE_BEFORE_CHANGE = "profile-before-change" ; static final String PROFILE_DO_CHANGE = "profile-do-change" ; static final String SHUTDOWN_PERSIST = "shutdown-persist" ; static final String STARTUP = "startup" ; static final String XULRUNNER_INITIALIZED = "org.eclipse.swt.browser.XULRunnerInitialized" ; static final String XULRUNNER_PATH = "org.eclipse.swt.browser.XULRunnerPath" ; public void create ( Composite parent , int style ) { } public boolean back ( ) { } void createCOMInterfaces ( ) { } void disposeCOMInterfaces ( ) { } public boolean execute ( String script ) { } static Browser findBrowser ( int handle ) { } public boolean forward ( ) { } public String getUrl ( ) { } public Object getWebBrowser ( ) { } public boolean isBackEnabled ( ) { } public boolean isForwardEnabled ( ) { } static String error ( int code ) { } void onDispose ( Display display ) { } void Activate ( ) { } void Deactivate ( ) { } void onResize ( ) { } public void refresh ( ) { } public boolean setText ( String html ) { } public boolean setUrl ( String url ) { } public void stop ( ) { } void hookDOMListeners ( ) { } void hookDOMListeners ( nsIDOMEventTarget target , boolean isTop ) { nsEmbedString string = new nsEmbedString ( XPCOM . DOMEVENT_FOCUS ) ; int rc = target . AddEventListener ( string . getAddress ( ) , domEventListener . getAddress ( ) , false ) ; if ( rc != ( XPCOM . NS_OK ) ) Mozilla . error ( rc ) ; string . dispose ( ) ; string = new nsEmbedString ( XPCOM . DOMEVENT_UNLOAD ) ; rc = target . AddEventListener ( string . getAddress ( ) , domEventListener . getAddress ( ) , false ) ; if ( rc != ( XPCOM . NS_OK ) ) Mozilla . error ( rc ) ; string . dispose ( ) ; string = new nsEmbedString ( XPCOM . DOMEVENT_MOUSEDOWN ) ; rc = target . AddEventListener ( string . getAddress ( ) , domEventListener . getAddress ( ) , false ) ; if ( rc != ( XPCOM . NS_OK ) ) Mozilla . error ( rc ) ; string . dispose ( ) ; string = new nsEmbedString ( XPCOM . DOMEVENT_MOUSEUP ) ; rc = target . AddEventListener ( string . getAddress ( ) , domEventListener . getAddress ( ) , false ) ; if ( rc != ( XPCOM . NS_OK ) ) Mozilla . error ( rc ) ; string . dispose ( ) ; string = new nsEmbedString ( XPCOM . DOMEVENT_MOUSEMOVE ) ; rc = target . AddEventListener ( string . getAddress ( ) , domEventListener . getAddress ( ) , false ) ; if ( rc != ( XPCOM . NS_OK ) ) Mozilla . error ( rc ) ; string . dispose ( ) ; <START_BUG> if ( isTop ) { <END_BUG> string = new nsEmbedString ( XPCOM . DOMEVENT_MOUSEOVER ) ; rc = target . AddEventListener ( string . getAddress ( ) , domEventListener . getAddress ( ) , false ) ; if ( rc != ( XPCOM . NS_OK ) ) Mozilla . error ( rc ) ; string . dispose ( ) ; string = new nsEmbedString ( XPCOM . DOMEVENT_MOUSEOUT ) ; rc = target . AddEventListener ( string . getAddress ( ) , domEventListener . getAddress ( ) , false ) ; if ( rc != ( XPCOM . NS_OK ) ) Mozilla . error ( rc ) ; string . dispose ( ) ; } } void unhookDOMListeners ( ) { } void unhookDOMListeners ( nsIDOMEventTarget target ) { } int QueryInterface ( int riid , int ppvObject ) { } int AddRef ( ) { } int Release ( ) { } int QueryReferent ( int riid , int ppvObject ) { } int GetInterface ( int riid , int ppvObject ) { } int GetWeakReference ( int ppvObject ) { } int OnStateChange ( int aWebProgress , int aRequest , int aStateFlags , int aStatus ) { } int OnProgressChange ( int aWebProgress , int aRequest , int aCurSelfProgress , int aMaxSelfProgress , int aCurTotalProgress , int aMaxTotalProgress ) { } int OnLocationChange ( int aWebProgress , int aRequest , int aLocation ) { } int OnStatusChange ( int aWebProgress , int aRequest , int aStatus , int aMessage ) { } int OnSecurityChange ( int aWebProgress , int aRequest , int state ) { } int SetStatus ( int statusType , int status ) { } int GetWebBrowser ( int aWebBrowser ) { } int SetWebBrowser ( int aWebBrowser ) { } int GetChromeFlags ( int aChromeFlags ) { } int SetChromeFlags ( int aChromeFlags ) { } int DestroyBrowserWindow ( ) { } int SizeBrowserTo ( int aCX , int aCY ) { } int ShowAsModal ( ) { } int IsWindowModal ( int retval ) { } int ExitModalEventLoop ( int aStatus ) { } int SetDimensions ( int flags , int x , int y , int cx , int cy ) { }

Fix:
if ( isTop && ( delegate . hookEnterExit ( ) ) ) {