| Index: lib/html/frog/html_frog.dart | 
| diff --git a/lib/html/frog/html_frog.dart b/lib/html/frog/html_frog.dart | 
| index 31cd99b107c6ad1e01964f9398f0b3af635a1539..102b8d757060d1b6dec35e02d11050f49f7fb8fe 100644 | 
| --- a/lib/html/frog/html_frog.dart | 
| +++ b/lib/html/frog/html_frog.dart | 
| @@ -22119,7 +22119,7 @@ interface Float32Array extends ArrayBufferView, List<num> default _TypedArrayFac | 
|  | 
| Float32Array.fromList(List<num> list); | 
|  | 
| -  Float32Array.fromBuffer(ArrayBuffer buffer); | 
| +  Float32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]); | 
|  | 
| static final int BYTES_PER_ELEMENT = 4; | 
|  | 
| @@ -22141,7 +22141,7 @@ interface Float64Array extends ArrayBufferView, List<num> default _TypedArrayFac | 
|  | 
| Float64Array.fromList(List<num> list); | 
|  | 
| -  Float64Array.fromBuffer(ArrayBuffer buffer); | 
| +  Float64Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]); | 
|  | 
| static final int BYTES_PER_ELEMENT = 8; | 
|  | 
| @@ -23024,7 +23024,7 @@ interface Int16Array extends ArrayBufferView, List<int> default _TypedArrayFacto | 
|  | 
| Int16Array.fromList(List<int> list); | 
|  | 
| -  Int16Array.fromBuffer(ArrayBuffer buffer); | 
| +  Int16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]); | 
|  | 
| static final int BYTES_PER_ELEMENT = 2; | 
|  | 
| @@ -23046,7 +23046,7 @@ interface Int32Array extends ArrayBufferView, List<int> default _TypedArrayFacto | 
|  | 
| Int32Array.fromList(List<int> list); | 
|  | 
| -  Int32Array.fromBuffer(ArrayBuffer buffer); | 
| +  Int32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]); | 
|  | 
| static final int BYTES_PER_ELEMENT = 4; | 
|  | 
| @@ -23068,7 +23068,7 @@ interface Int8Array extends ArrayBufferView, List<int> default _TypedArrayFactor | 
|  | 
| Int8Array.fromList(List<int> list); | 
|  | 
| -  Int8Array.fromBuffer(ArrayBuffer buffer); | 
| +  Int8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]); | 
|  | 
| static final int BYTES_PER_ELEMENT = 1; | 
|  | 
| @@ -28932,7 +28932,7 @@ interface Uint16Array extends ArrayBufferView, List<int> default _TypedArrayFact | 
|  | 
| Uint16Array.fromList(List<int> list); | 
|  | 
| -  Uint16Array.fromBuffer(ArrayBuffer buffer); | 
| +  Uint16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]); | 
|  | 
| static final int BYTES_PER_ELEMENT = 2; | 
|  | 
| @@ -28954,7 +28954,7 @@ interface Uint32Array extends ArrayBufferView, List<int> default _TypedArrayFact | 
|  | 
| Uint32Array.fromList(List<int> list); | 
|  | 
| -  Uint32Array.fromBuffer(ArrayBuffer buffer); | 
| +  Uint32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]); | 
|  | 
| static final int BYTES_PER_ELEMENT = 4; | 
|  | 
| @@ -28976,7 +28976,7 @@ interface Uint8Array extends ArrayBufferView, List<int> default _TypedArrayFacto | 
|  | 
| Uint8Array.fromList(List<int> list); | 
|  | 
| -  Uint8Array.fromBuffer(ArrayBuffer buffer); | 
| +  Uint8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]); | 
|  | 
| static final int BYTES_PER_ELEMENT = 1; | 
|  | 
| @@ -28998,7 +28998,7 @@ interface Uint8ClampedArray extends Uint8Array default _TypedArrayFactoryProvide | 
|  | 
| Uint8ClampedArray.fromList(List<int> list); | 
|  | 
| -  Uint8ClampedArray.fromBuffer(ArrayBuffer buffer); | 
| +  Uint8ClampedArray.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]); | 
|  | 
| final int length; | 
|  | 
| @@ -31900,43 +31900,96 @@ class _AudioContextFactoryProvider { | 
| '''; | 
| } | 
|  | 
| +class _PointFactoryProvider { | 
| + | 
| +  factory Point(num x, num y) native 'return new WebKitPoint(x, y);'; | 
| +} | 
| + | 
| +class _WebSocketFactoryProvider { | 
| + | 
| +  factory WebSocket(String url) native '''return new WebSocket(url);'''; | 
| +} | 
| + | 
| +class _TextFactoryProvider { | 
| +  factory Text(String data) native "return document.createTextNode(data);"; | 
| +} | 
| +// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
| +// for details. All rights reserved. Use of this source code is governed by a | 
| +// BSD-style license that can be found in the LICENSE file. | 
| + | 
| class _TypedArrayFactoryProvider { | 
|  | 
| factory Float32Array(int length) => _F32(length); | 
| factory Float32Array.fromList(List<num> list) => _F32(ensureNative(list)); | 
| -  factory Float32Array.fromBuffer(ArrayBuffer buffer) => _F32(buffer); | 
| +  factory Float32Array.fromBuffer(ArrayBuffer buffer, | 
| +                                  [int byteOffset = 0, int length]) { | 
| +    if (length == null) return _F32_2(buffer, byteOffset); | 
| +    return _F32_3(buffer, byteOffset, length); | 
| +  } | 
|  | 
| factory Float64Array(int length) => _F64(length); | 
| factory Float64Array.fromList(List<num> list) => _F64(ensureNative(list)); | 
| -  factory Float64Array.fromBuffer(ArrayBuffer buffer) => _F64(buffer); | 
| +  factory Float64Array.fromBuffer(ArrayBuffer buffer, | 
| +                                  [int byteOffset = 0, int length]) { | 
| +    if (length == null) return _F64_2(buffer, byteOffset); | 
| +    return _F64_3(buffer, byteOffset, length); | 
| +  } | 
|  | 
| factory Int8Array(int length) => _I8(length); | 
| factory Int8Array.fromList(List<num> list) => _I8(ensureNative(list)); | 
| -  factory Int8Array.fromBuffer(ArrayBuffer buffer) => _I8(buffer); | 
| +  factory Int8Array.fromBuffer(ArrayBuffer buffer, | 
| +                               [int byteOffset = 0, int length]) { | 
| +    if (length == null) return _I8_2(buffer, byteOffset); | 
| +    return _I8_3(buffer, byteOffset, length); | 
| +  } | 
|  | 
| factory Int16Array(int length) => _I16(length); | 
| factory Int16Array.fromList(List<num> list) => _I16(ensureNative(list)); | 
| -  factory Int16Array.fromBuffer(ArrayBuffer buffer) => _I16(buffer); | 
| +  factory Int16Array.fromBuffer(ArrayBuffer buffer, | 
| +                                [int byteOffset = 0, int length]) { | 
| +    if (length == null) return _I16_2(buffer, byteOffset); | 
| +    return _I16_3(buffer, byteOffset, length); | 
| +  } | 
|  | 
| factory Int32Array(int length) => _I32(length); | 
| factory Int32Array.fromList(List<num> list) => _I32(ensureNative(list)); | 
| -  factory Int32Array.fromBuffer(ArrayBuffer buffer) => _I32(buffer); | 
| +  factory Int32Array.fromBuffer(ArrayBuffer buffer, | 
| +                                [int byteOffset = 0, int length]) { | 
| +    if (length == null) return _I32_2(buffer, byteOffset); | 
| +    return _I32_3(buffer, byteOffset, length); | 
| +  } | 
|  | 
| factory Uint8Array(int length) => _U8(length); | 
| factory Uint8Array.fromList(List<num> list) => _U8(ensureNative(list)); | 
| -  factory Uint8Array.fromBuffer(ArrayBuffer buffer) => _U8(buffer); | 
| +  factory Uint8Array.fromBuffer(ArrayBuffer buffer, | 
| +                                [int byteOffset = 0, int length]) { | 
| +    if (length == null) return _U8_2(buffer, byteOffset); | 
| +    return _U8_3(buffer, byteOffset, length); | 
| +  } | 
|  | 
| factory Uint16Array(int length) => _U16(length); | 
| factory Uint16Array.fromList(List<num> list) => _U16(ensureNative(list)); | 
| -  factory Uint16Array.fromBuffer(ArrayBuffer buffer) => _U16(buffer); | 
| +  factory Uint16Array.fromBuffer(ArrayBuffer buffer, | 
| +                                 [int byteOffset = 0, int length]) { | 
| +    if (length == null) return _U16_2(buffer, byteOffset); | 
| +    return _U16_3(buffer, byteOffset, length); | 
| +  } | 
|  | 
| factory Uint32Array(int length) => _U32(length); | 
| factory Uint32Array.fromList(List<num> list) => _U32(ensureNative(list)); | 
| -  factory Uint32Array.fromBuffer(ArrayBuffer buffer) => _U32(buffer); | 
| +  factory Uint32Array.fromBuffer(ArrayBuffer buffer, | 
| +                                 [int byteOffset = 0, int length]) { | 
| +    if (length == null) return _U32_2(buffer, byteOffset); | 
| +    return _U32_3(buffer, byteOffset, length); | 
| +  } | 
|  | 
| factory Uint8ClampedArray(int length) => _U8C(length); | 
| factory Uint8ClampedArray.fromList(List<num> list) => _U8C(ensureNative(list)); | 
| -  factory Uint8ClampedArray.fromBuffer(ArrayBuffer buffer) => _U8C(buffer); | 
| +  factory Uint8ClampedArray.fromBuffer(ArrayBuffer buffer, | 
| +                                       [int byteOffset = 0, int length]) { | 
| +    if (length == null) return _U8C_2(buffer, byteOffset); | 
| +    return _U8C_3(buffer, byteOffset, length); | 
| +  } | 
|  | 
| static Float32Array _F32(arg) native 'return new Float32Array(arg);'; | 
| static Float64Array _F64(arg) native 'return new Float64Array(arg);'; | 
| @@ -31948,22 +32001,32 @@ class _TypedArrayFactoryProvider { | 
| static Uint32Array _U32(arg) native 'return new Uint32Array(arg);'; | 
| static Uint8ClampedArray _U8C(arg) native 'return new Uint8ClampedArray(arg);'; | 
|  | 
| +  static Float32Array _F32_2(arg1, arg2) native 'return new Float32Array(arg1, arg2);'; | 
| +  static Float64Array _F64_2(arg1, arg2) native 'return new Float64Array(arg1, arg2);'; | 
| +  static Int8Array _I8_2(arg1, arg2) native 'return new Int8Array(arg1, arg2);'; | 
| +  static Int16Array _I16_2(arg1, arg2) native 'return new Int16Array(arg1, arg2);'; | 
| +  static Int32Array _I32_2(arg1, arg2) native 'return new Int32Array(arg1, arg2);'; | 
| +  static Uint8Array _U8_2(arg1, arg2) native 'return new Uint8Array(arg1, arg2);'; | 
| +  static Uint16Array _U16_2(arg1, arg2) native 'return new Uint16Array(arg1, arg2);'; | 
| +  static Uint32Array _U32_2(arg1, arg2) native 'return new Uint32Array(arg1, arg2);'; | 
| +  static Uint8ClampedArray _U8C_2(arg1, arg2) native 'return new Uint8ClampedArray(arg1, arg2);'; | 
| + | 
| +  static Float32Array _F32_3(arg1, arg2, arg3) native 'return new Float32Array(arg1, arg2, arg3);'; | 
| +  static Float64Array _F64_3(arg1, arg2, arg3) native 'return new Float64Array(arg1, arg2, arg3);'; | 
| +  static Int8Array _I8_3(arg1, arg2, arg3) native 'return new Int8Array(arg1, arg2, arg3);'; | 
| +  static Int16Array _I16_3(arg1, arg2, arg3) native 'return new Int16Array(arg1, arg2, arg3);'; | 
| +  static Int32Array _I32_3(arg1, arg2, arg3) native 'return new Int32Array(arg1, arg2, arg3);'; | 
| +  static Uint8Array _U8_3(arg1, arg2, arg3) native 'return new Uint8Array(arg1, arg2, arg3);'; | 
| +  static Uint16Array _U16_3(arg1, arg2, arg3) native 'return new Uint16Array(arg1, arg2, arg3);'; | 
| +  static Uint32Array _U32_3(arg1, arg2, arg3) native 'return new Uint32Array(arg1, arg2, arg3);'; | 
| +  static Uint8ClampedArray _U8C_3(arg1, arg2, arg3) native 'return new Uint8ClampedArray(arg1, arg2, arg3);'; | 
| + | 
| + | 
| +  // Ensures that [list] is a JavaScript Array or a typed array.  If necessary, | 
| +  // copies the list. | 
| static ensureNative(List list) => list;  // TODO: make sure. | 
| } | 
| - | 
| -class _PointFactoryProvider { | 
| - | 
| -  factory Point(num x, num y) native 'return new WebKitPoint(x, y);'; | 
| -} | 
| - | 
| -class _WebSocketFactoryProvider { | 
| - | 
| -  factory WebSocket(String url) native '''return new WebSocket(url);'''; | 
| -} | 
| - | 
| -class _TextFactoryProvider { | 
| -  factory Text(String data) native "return document.createTextNode(data);"; | 
| -}// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
| +// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
| // for details. All rights reserved. Use of this source code is governed by a | 
| // BSD-style license that can be found in the LICENSE file. | 
|  | 
|  |