branch-info.txt for GWT 1.5 release:
Tracks interactions between this branch and other branches. 
See: http://code.google.com/p/google-web-toolkit/wiki/ManagingMerges

Copies:
/releases/1.5/ was created (r2940) as a straight copy from /trunk/@r2939
/tags/1.5.0 was created (r2959) as a straight copy from /releases/1.5/@r2941

Merges:
/releases/1.5/@r2940:2941 was merged (r2942) into /trunk/
/releases/1.5/@r2941:2990 was merged (r2992) into /trunk/
/trunk c2986 was merged (r2991) into this branch
/releases/1.5/@r2991:2994 was merged (r2998) into /trunk/, skipping c2991
/releases/1.5/@r2994:3048 was merged (r3050) into /trunk/
/releases/1.5/@r3048:3078 was merged (r3079) into /trunk/
/releases/1.5/@r3078:3125 was merged (r3126) into /trunk/
/releases/1.5/@r3125:3170 was merged (r3173) into /trunk/
/releases/1.5/@r3170:3188 was merged (r3202) into /trunk/
/releases/1.5/@r3188:3205 was merged (r3206) into /trunk/
/trunk c3005,c3008,c3098,c3180 were merged (r3231) into this branch.
/trunk c2990 was merged (r3240) into this branch
/releases/1.5/@r3205:3230 was merged (r3351) into /trunk/
/releases/1.5/@r3231:3239 was merged (r3351) into /trunk/, skipping c3231
/releases/1.5/@r3240:3341 was merged (r3351) into /trunk/, skipping c3240
/releases/1.5/@r3341:3372 was merged (r3376) into /trunk/
/releases/1.5/@r3372:3391 was merged (r3395) into /trunk/
/releases/1.5/@r3391:3505 was merged (r3506) into /trunk/
/trunk c2974 was merged (r3550) into this branch
---> The next merge into trunk will be 3505:3549 and 3550:????

Changes in this branch (excluding changes to this file itself):
- Fixed random JUnit timeouts occurring on module transition. (r2941)
- Updated some machine-translated strings in Showcase with better ones. (r2958)
- TreeItem background color in Mail (r2968)
- Expanded height/width of themed repeating border images to make IE7 run faster (r2969)
- Animation speedups to PopupPanel & TreeItem (r2970)
- Memory leak fix related to selection script typo (r2981)
- Added a .gwt-Frame CSS style to the Frame widget (r2982)
- Fixed typos in gwt-module.dtd (r2987)
- Fixed an RPC bug with Vector (r2988)
- Fixed an RPC error that would cause some types to be erroneously considered non-serializable (r2989)
- Fix for nullField replacements causing an unexpected type change / invalid AST by allowing JFieldRefs to override the type of the referenced field (r2991)
- Change to Pruner such that volatile fields are rescued when assigned to (r2991)
- Fixes ResourceOracleImpl in cases where nested logical packages exist (r2994)
- Showcase layout tweak (r2995)
- Showcase code cleanup (r2996)
- Theme changes to PushButton/ToggleButton to visually show clicking with a 1px down/right shift (r2997)
- Showcase fast-path on example clicks instead of waiting on history to fire (r2997)
- Showcase detects stylesheet loads now to avoid jiggle when changing styles (r2997)
- Adding missing 'final' modifier to GWTTestCase.tearDown() (r3000)
- Build fix to produce javadoc for GWTTestSuite (r3012)
- DecoratedPopupPanel correctly attaches its inner DecoratorPanel and children (r3013)
- Added "gwt-Frame" style to NamedFrame (r3015)
- Removed unused "propertieschanges.txt" file from Showcase sample (r3016)
- Fixed a bug in PopupImplIE that could cause the hidden iframe behind a popup to be larger than the popup (r3017)
- JUnit gives better error messages when the test class did not make it into TypeOracle (r3018)
- Fixes for stats, including making stats available in hosted mode (r3020)
- Accept jars and zips on classpath even without correct extension (r3024)
- Fixed incorrect declaration of Collections.EMPTY_LIST etc (r3030)
- Removed bogus System.out.println() from DOMImpl.isMyListener() (r3032)
- Linux hosted mode bugfix with multiple field reads on Java objects from JSNI (r3035)
- Mac OS X foreign GC crash fix (r3036)
- Static eval bug with floating point vs. integral math (r3040)
- History token bug on IE (r3042)
- RPC bugfix related to implementing a parameterized interface (r3044)
- MenuBar animation exception when page refreshed while menus open (r3045)
- Showcase textual tweaks (r3046)
- Reverted a change that was not meant to be commited with (r3047)
- Provide better error messages when we can't initialize the native parts of hosted mode (r3048)
- HashMap was failing to add keys that were not passing a JS hashCode == parseInt(hashCode) test (r3049)
- Fixes potential compiler errors by making sure all indexed types are compiled (r3052)
- Add TabPanel.setAnimationEnabled method (r3054)
- New Showcase locale icon (r3055)
- DeckPanel now calls setVisible(true) on the Widget that is currently being displayed (r3056)
- JsToStringVisitor could fail to emit a required semi in obfuscated mode on an if-else chain ending with an empty else (r3058)
- Remove unimplemented subList methods so failures will be at compile time rather than runtime, clean up other UnsupportedOperationException messages (3061)
- our internal Object.typeMarker and Object.typeId fields prevented users from shadowing them correctly in web mode with the same identifiers in subclasses (r3062)
- Fixes issue #1678 by passing the appropriate sender and insisting on sender type being FormPanel (r3063)
- Removed spurious System.err print from test code (r3064)
- Fix issue 2496 - the generator needed to be updated to properly support ConstantsWithLookup with generic types (r3065)
- Use of EnumSet in some cases could cause a compiler ICE (r3067)
- Removed redundant styles from css template (r3068)
- When inserting a call to nullMethod(), the type of the call was previously always set to the null type (r3069)
- Rearranged the UIObject.ensureDebugID methods so users can override the default implementation using a deferred binding (r3070)
- Fixes a NPE in JSORestrictionsChecker that could be triggered by attempting to validate a unit with errors (3072)
- Autoboxing was not handled correctly when a box type was used with ++, --, or a compound assignment such as += (r3073)
- "gwt.nowarn.metadata" was doing the opposite of what it should. (r3074)
- Add missing JRE pieces, fix long sort bug, add test for long sort (r3075)
- Wrapper types that are not used in a program are not present, so don't rely on being able to look up all wrapper types (r3076)
- Generate currency data at compile time rather than runtime (r3077)
- Some Java compilers allow "aByte+= 1" where aByte is of type Byte.  Others do not. (r3078)
- Fix a bug where Safari 3 does not correctly calculate the value of DOM.getAbsoluteLeft(elem). Issue 1711. (r3082)
- Fix a broken test in DOMTest related to getAbsoluteTop and getAbsoluteLeft. (r3083)
- Add support for wrapping existing DOM elements using wrap() methods. Also added InlineLable, InlineHTML, SimpleRadioButton, SimpleCheckbox widgets.Issues 1544, 2289, and 2291 (r3085)
- Add support for the standard 'contextmenu' event to the DOM layer. (r3086)
- Add the ability to set a tab's text and html after it has been created. Issue 661. (r3087)
- Fix javadoc for Anchor to say "href" instead of "target history token". (r3088)
- Patch for breaking TabBarTest.java. (r3089)
- Modified DOM.eventGetClientX/Y to account for margins and borders on the HTML element in Safari 2 and Firefox. Issue 1932. (r3090)
- Got rid of an unused import error in HTMLPanel. (r3091)
- Fix issue 2543 by relaxing an overly strict assertion in LongEmulationNormalizer.(r3092)
- Fixes issue 934 (History.newItem() broken on Opera), and issue 2550 (HistoryImplStandard uses function argument rather than string) (r3094)
- JUnit issues fixed: NPEs when client module load fails, content type on loadError XHR not valid, BenchmarkStrategy threw CCE in some cases (r3097)
- Added caching for allTypes (r3098)
- Prune PerfLogger output to make it more readable. (r3099)
- Run perflogger around all generators; removed specific perflogger calls from GWTRunnerGenerator. (r3100)
- PerfLogger twiddling in CompilationState and JdtCompiler. (r3101)
- Added javadoc and an assertion to CompilationUnit. (r3102)
- Fixes a refresh bug introduced in r3100:r3103. (r3104)
- Implements a lightweight set of JsArray classes for dealing with primitive arrays and JSON structures containing other JSOs. (r3106)
- Remove checkstyle error on HistoryImplOpera and make package protected. (r3108)
- Add assertions to all DOM.eventGetXXXmethods on the attribute being retrieved. issues 2556, 1667. (r3109)
- Fixes clientHeight and clientWidth for Opera 9.5 standards mode. (r3115)
- Protects a number of new global identifiers from being redefined by the compiler. Issue 2578. (r3117)
- Exposes an immutable map of the query parameters to allow calling Window.Location.getParameterMap(). Issue 2211 (r3118)
- Fixes an unguarded reference to window.external that's causing problems with certain IE plugins and hosting environments (e.g. SWT). (r3119)
- Changes Anchor and SimpleCheckBox to extend FocusWidget. (r3120)
- Opera 9 doesn't need to use FocusImplOld anymore. (r3121)
- Improve long RPC serialization performance by transmitting the long as its internal representation of two doubles. (r3122)
- Fixes for broken Anchor tests. (r3123)
- Updated the algorithm used for computing the set of serializable types. (r3124)
- Introduces a new public class, GWTMockUtilities, aimed at allowing developers to mock out GWT Widgets in JUnit tests. (r3125)
- gwt-servlet.jar was failing to include benchmarks classes (r3135)
- NPE in Arrays.hashCode(Object[]) when array contained a null (r3140)
- Fix for how i18n searches for resources (r3142)
- CustomButtom tripping invalid assertions on mouse events (r3149)
- TreeMap can now be constructed with a null comparator (r3152)
- Many widgets now have accessible protected constructors for subclassing that can take existing elements (r3158)
- Fix for a startup bug that would affect certain apps in IE when using the Cross-site Linker (r3163)
- Fix for an NPE in hosted mode when using a static entry point (r3165)
- Fixes several potential compiler crashes related to invalid types on temporary locals (r3166)
- Fixes a potential NPE in STOB logging (r3167)
- Fixes a code generation bug for a switch statement when a final default case ends with a labelled break statement (r3168)
- Fixes  missing javadoc for two methods; Adds setCapture() and releaseCapture()delegates to DOM (r3171)
- Adds to FormPanel the ability to wrap an existing form, and still create a synthetic IFrame (r3178)
- De-flakify ImageTest by removing most timers and loosening up the timing constraints (r3181).
- Fix sort order of new method (r3183)
- Opens up PopupPanel.hide(Z) (r3184)
- Modify PushButton and ToggleButton styling for the "dark" style (r3185)
- Fix for issue 2512. Widgets that inherit from CustomButton should only respond to left mousedown/up (r3186)
- Fix excessive stack use while parsing consecutive comment lines (r3187)
- Reverts DOM.getIntStyleAttribute() to its original js implementation (r3188)
- Fixes occasional exception in IE popups (issue 2656) (r3200)
- DOM.getIntStyleAttribute() should be static.  Fixes checkstyle errors too. (r3201)
- Fixes for issues 2278 (Replacing calls to getBoxObjectFor() on FF3), 1556 (getAbsoluteLeft/Top() for Opera fails) (r3204)
- Fix some more checkstyle errors in WidgetSubclassingTest (r3205)
- Refactor history to fix exception problems and fix issue 99 (r3234-3236)
- Fix Window.Location on IE (r3239)
- Merge in r2990 from trunk, which fixes GWT.isClient for mocking (r3240)
