| Index: lib/runtime/dart/_native_typed_data.js | 
| diff --git a/lib/runtime/dart/_native_typed_data.js b/lib/runtime/dart/_native_typed_data.js | 
| index 4c9290b64c65b270c06640e4ccf0274e0203fb17..85c8463a6168dd59200ef21104dce245dccb07fc 100644 | 
| --- a/lib/runtime/dart/_native_typed_data.js | 
| +++ b/lib/runtime/dart/_native_typed_data.js | 
| @@ -1,10 +1,14 @@ | 
| var _native_typed_data; | 
| (function(exports) { | 
| 'use strict'; | 
| +  let lengthInBytes = Symbol('lengthInBytes'); | 
| let _externalStorage = Symbol('_externalStorage'); | 
| class NativeByteBuffer extends core.Object { | 
| NativeByteBuffer() { | 
| -      this.lengthInBytes = null; | 
| +      this[lengthInBytes] = null; | 
| +    } | 
| +    get lengthInBytes() { | 
| +      return this[lengthInBytes]; | 
| } | 
| get runtimeType() { | 
| return typed_data.ByteBuffer; | 
| @@ -395,12 +399,28 @@ var _native_typed_data; | 
| dart.defineNamedConstructor(NativeFloat64x2List, _externalStorage); | 
| dart.defineNamedConstructor(NativeFloat64x2List, _slowFromList); | 
| dart.defineNamedConstructor(NativeFloat64x2List, 'fromList'); | 
| +  let buffer = Symbol('buffer'); | 
| +  let lengthInBytes$ = Symbol('lengthInBytes'); | 
| +  let offsetInBytes = Symbol('offsetInBytes'); | 
| +  let elementSizeInBytes = Symbol('elementSizeInBytes'); | 
| class NativeTypedData extends core.Object { | 
| NativeTypedData() { | 
| -      this.buffer = null; | 
| -      this.lengthInBytes = null; | 
| -      this.offsetInBytes = null; | 
| -      this.elementSizeInBytes = null; | 
| +      this[buffer] = null; | 
| +      this[lengthInBytes$] = null; | 
| +      this[offsetInBytes] = null; | 
| +      this[elementSizeInBytes] = null; | 
| +    } | 
| +    get buffer() { | 
| +      return this[buffer]; | 
| +    } | 
| +    get lengthInBytes() { | 
| +      return this[lengthInBytes$]; | 
| +    } | 
| +    get offsetInBytes() { | 
| +      return this[offsetInBytes]; | 
| +    } | 
| +    get elementSizeInBytes() { | 
| +      return this[elementSizeInBytes]; | 
| } | 
| [_invalidIndex](index, length) { | 
| if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(length)) { | 
| @@ -980,20 +1000,36 @@ var _native_typed_data; | 
| NativeUint8List[dart.implements] = () => [typed_data.Uint8List]; | 
| dart.defineNamedConstructor(NativeUint8List, 'fromList'); | 
| dart.defineNamedConstructor(NativeUint8List, 'view'); | 
| +  let x$ = Symbol('x'); | 
| +  let y$ = Symbol('y'); | 
| +  let z$ = Symbol('z'); | 
| +  let w$ = Symbol('w'); | 
| let _truncate = Symbol('_truncate'); | 
| let _list = Symbol('_list'); | 
| let _uint32view = Symbol('_uint32view'); | 
| let _doubles = Symbol('_doubles'); | 
| class NativeFloat32x4 extends core.Object { | 
| +    get x() { | 
| +      return this[x$]; | 
| +    } | 
| +    get y() { | 
| +      return this[y$]; | 
| +    } | 
| +    get z() { | 
| +      return this[z$]; | 
| +    } | 
| +    get w() { | 
| +      return this[w$]; | 
| +    } | 
| static [_truncate](x) { | 
| NativeFloat32x4[_list][core.$set](0, dart.as(x, core.num)); | 
| return NativeFloat32x4[_list][core.$get](0); | 
| } | 
| NativeFloat32x4(x, y, z, w) { | 
| -      this.x = dart.as(NativeFloat32x4[_truncate](x), core.double); | 
| -      this.y = dart.as(NativeFloat32x4[_truncate](y), core.double); | 
| -      this.z = dart.as(NativeFloat32x4[_truncate](z), core.double); | 
| -      this.w = dart.as(NativeFloat32x4[_truncate](w), core.double); | 
| +      this[x$] = dart.as(NativeFloat32x4[_truncate](x), core.double); | 
| +      this[y$] = dart.as(NativeFloat32x4[_truncate](y), core.double); | 
| +      this[z$] = dart.as(NativeFloat32x4[_truncate](z), core.double); | 
| +      this[w$] = dart.as(NativeFloat32x4[_truncate](w), core.double); | 
| if (!dart.is(x, core.num)) | 
| throw new core.ArgumentError(x); | 
| if (!dart.is(y, core.num)) | 
| @@ -1020,16 +1056,16 @@ var _native_typed_data; | 
| this[_truncated](dart.as(NativeFloat32x4[_truncate](v.x), core.double), dart.as(NativeFloat32x4[_truncate](v.y), core.double), 0.0, 0.0); | 
| } | 
| [_doubles](x, y, z, w) { | 
| -      this.x = dart.as(NativeFloat32x4[_truncate](x), core.double); | 
| -      this.y = dart.as(NativeFloat32x4[_truncate](y), core.double); | 
| -      this.z = dart.as(NativeFloat32x4[_truncate](z), core.double); | 
| -      this.w = dart.as(NativeFloat32x4[_truncate](w), core.double); | 
| +      this[x$] = dart.as(NativeFloat32x4[_truncate](x), core.double); | 
| +      this[y$] = dart.as(NativeFloat32x4[_truncate](y), core.double); | 
| +      this[z$] = dart.as(NativeFloat32x4[_truncate](z), core.double); | 
| +      this[w$] = dart.as(NativeFloat32x4[_truncate](w), core.double); | 
| } | 
| [_truncated](x, y, z, w) { | 
| -      this.x = x; | 
| -      this.y = y; | 
| -      this.z = z; | 
| -      this.w = w; | 
| +      this[x$] = x; | 
| +      this[y$] = y; | 
| +      this[z$] = z; | 
| +      this[w$] = w; | 
| } | 
| toString() { | 
| return `[${this.x}, ${this.y}, ${this.z}, ${this.w}]`; | 
| @@ -1252,16 +1288,32 @@ var _native_typed_data; | 
| return NativeFloat32x4[_list].buffer.asUint32List(); | 
| } | 
| }); | 
| +  let x$0 = Symbol('x'); | 
| +  let y$0 = Symbol('y'); | 
| +  let z$0 = Symbol('z'); | 
| +  let w$0 = Symbol('w'); | 
| class NativeInt32x4 extends core.Object { | 
| +    get x() { | 
| +      return this[x$0]; | 
| +    } | 
| +    get y() { | 
| +      return this[y$0]; | 
| +    } | 
| +    get z() { | 
| +      return this[z$0]; | 
| +    } | 
| +    get w() { | 
| +      return this[w$0]; | 
| +    } | 
| static [_truncate](x) { | 
| NativeInt32x4[_list][core.$set](0, dart.as(x, core.int)); | 
| return NativeInt32x4[_list][core.$get](0); | 
| } | 
| NativeInt32x4(x, y, z, w) { | 
| -      this.x = dart.as(NativeInt32x4[_truncate](x), core.int); | 
| -      this.y = dart.as(NativeInt32x4[_truncate](y), core.int); | 
| -      this.z = dart.as(NativeInt32x4[_truncate](z), core.int); | 
| -      this.w = dart.as(NativeInt32x4[_truncate](w), core.int); | 
| +      this[x$0] = dart.as(NativeInt32x4[_truncate](x), core.int); | 
| +      this[y$0] = dart.as(NativeInt32x4[_truncate](y), core.int); | 
| +      this[z$0] = dart.as(NativeInt32x4[_truncate](z), core.int); | 
| +      this[w$0] = dart.as(NativeInt32x4[_truncate](w), core.int); | 
| if (x != this.x && !(typeof x == 'number')) | 
| throw new core.ArgumentError(x); | 
| if (y != this.y && !(typeof y == 'number')) | 
| @@ -1272,10 +1324,10 @@ var _native_typed_data; | 
| throw new core.ArgumentError(w); | 
| } | 
| bool(x, y, z, w) { | 
| -      this.x = x ? -1 : 0; | 
| -      this.y = y ? -1 : 0; | 
| -      this.z = z ? -1 : 0; | 
| -      this.w = w ? -1 : 0; | 
| +      this[x$0] = x ? -1 : 0; | 
| +      this[y$0] = y ? -1 : 0; | 
| +      this[z$0] = z ? -1 : 0; | 
| +      this[w$0] = w ? -1 : 0; | 
| } | 
| fromFloat32x4Bits(f) { | 
| let floatList = NativeFloat32x4[_list]; | 
| @@ -1287,10 +1339,10 @@ var _native_typed_data; | 
| return new NativeInt32x4[_truncated](view[core.$get](0), view[core.$get](1), view[core.$get](2), view[core.$get](3)); | 
| } | 
| [_truncated](x, y, z, w) { | 
| -      this.x = x; | 
| -      this.y = y; | 
| -      this.z = z; | 
| -      this.w = w; | 
| +      this[x$0] = x; | 
| +      this[y$0] = y; | 
| +      this[z$0] = z; | 
| +      this[w$0] = w; | 
| } | 
| toString() { | 
| return `[${this.x}, ${this.y}, ${this.z}, ${this.w}]`; | 
| @@ -1435,11 +1487,19 @@ var _native_typed_data; | 
| return new NativeInt32List(4); | 
| } | 
| }); | 
| +  let x$1 = Symbol('x'); | 
| +  let y$1 = Symbol('y'); | 
| let _uint32View = Symbol('_uint32View'); | 
| class NativeFloat64x2 extends core.Object { | 
| +    get x() { | 
| +      return this[x$1]; | 
| +    } | 
| +    get y() { | 
| +      return this[y$1]; | 
| +    } | 
| NativeFloat64x2(x, y) { | 
| -      this.x = x; | 
| -      this.y = y; | 
| +      this[x$1] = x; | 
| +      this[y$1] = y; | 
| if (!dart.is(this.x, core.num)) | 
| throw new core.ArgumentError(this.x); | 
| if (!dart.is(this.y, core.num)) | 
| @@ -1455,8 +1515,8 @@ var _native_typed_data; | 
| this.NativeFloat64x2(v.x, v.y); | 
| } | 
| [_doubles](x, y) { | 
| -      this.x = x; | 
| -      this.y = y; | 
| +      this[x$1] = x; | 
| +      this[y$1] = y; | 
| } | 
| toString() { | 
| return `[${this.x}, ${this.y}]`; | 
|  |