| Index: sdk/lib/html/dart2js/html_dart2js.dart | 
| diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart | 
| index 09f9f04a2c80669806c812e68ce538697551ddf3..3105b0c0a55d5fef0c8b187b89b051aba66a28b1 100644 | 
| --- a/sdk/lib/html/dart2js/html_dart2js.dart | 
| +++ b/sdk/lib/html/dart2js/html_dart2js.dart | 
| @@ -10890,13 +10890,20 @@ class KeyboardEvent extends UIEvent native "*KeyboardEvent" { | 
| void $dom_initKeyboardEvent(String type, bool canBubble, bool cancelable, | 
| LocalWindow view, String keyIdentifier, int keyLocation, bool ctrlKey, | 
| bool altKey, bool shiftKey, bool metaKey, bool altGraphKey) { | 
| -    // initKeyEvent is the call in Firefox, initKeyboardEvent for all other | 
| -    // browsers. | 
| -    var function = JS('dynamic', '#.initKeyboardEvent || #.initKeyEvent', this, | 
| -        this); | 
| -    JS('void', '#(#, #, #, #, #, #, #, #, #, #, #)', function, type, | 
| -        canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, | 
| -        altKey, shiftKey, metaKey, altGraphKey); | 
| +    if (JS('bool', 'typeof(#.initKeyEvent) == "function"', this)) { | 
| +      // initKeyEvent is only in Firefox (instead of initKeyboardEvent). It has | 
| +      // a slightly different signature, and allows you to specify keyCode and | 
| +      // charCode as the last two arguments, but we just set them as the default | 
| +      // since they can't be specified in other browsers. | 
| +      JS('void', '#.initKeyEvent(#, #, #, #, #, #, #, #, 0, 0)', this, | 
| +          type, canBubble, cancelable, view, | 
| +          ctrlKey, altKey, shiftKey, metaKey); | 
| +    } else { | 
| +      // initKeyboardEvent is for all other browsers. | 
| +      JS('void', '#.initKeyboardEvent(#, #, #, #, #, #, #, #, #, #, #)', this, | 
| +          type, canBubble, cancelable, view, keyIdentifier, keyLocation, | 
| +          ctrlKey, altKey, shiftKey, metaKey, altGraphKey); | 
| +    } | 
| } | 
|  | 
| /** @domName KeyboardEvent.keyCode */ | 
| @@ -21950,7 +21957,7 @@ class KeyboardEventController { | 
| EventTarget _target; | 
|  | 
| // The distance to shift from upper case alphabet Roman letters to lower case. | 
| -  int _ROMAN_ALPHABET_OFFSET = "a".charCodes[0] - "A".charCodes[0]; | 
| +  final int _ROMAN_ALPHABET_OFFSET = "a".charCodes[0] - "A".charCodes[0]; | 
|  | 
| // Instance members referring to the internal event handlers because closures | 
| // are not hashable. | 
|  |