Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Side by Side Diff: runtime/lib/typeddata.dart

Issue 13093005: Revert 12534006 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/lib/typeddata.cc ('k') | runtime/vm/bootstrap_natives.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // patch classes for Int8List ..... Float64List and ByteData implementations. 5 // patch classes for Int8List ..... Float64List and ByteData implementations.
6 6
7 patch class Int8List { 7 patch class Int8List {
8 /* patch */ factory Int8List(int length) { 8 /* patch */ factory Int8List(int length) {
9 return new _Int8Array(length); 9 return new _Int8Array(length);
10 } 10 }
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 /* patch */ factory Float64List.view(ByteBuffer buffer, 217 /* patch */ factory Float64List.view(ByteBuffer buffer,
218 [int offsetInBytes = 0, int length]) { 218 [int offsetInBytes = 0, int length]) {
219 return new _Float64ArrayView(buffer, offsetInBytes, length); 219 return new _Float64ArrayView(buffer, offsetInBytes, length);
220 } 220 }
221 221
222 static _ExternalFloat64Array _newTransferable(int length) { 222 static _ExternalFloat64Array _newTransferable(int length) {
223 return new _ExternalFloat64Array(length); 223 return new _ExternalFloat64Array(length);
224 } 224 }
225 } 225 }
226 226
227 patch class Float32x4List {
228 /* patch */ factory Float32x4List(int length) {
229 return new _Float32x4Array(length);
230 }
231
232 /* patch */ factory Float32x4List.transferable(int length) {
233 return _newTransferable(length);
234 }
235
236 /* patch */ factory Float32x4List.view(ByteBuffer buffer,
237 [int offsetInBytes = 0, int length]) {
238 return new _Float32x4ArrayView(buffer, offsetInBytes, length);
239 }
240
241 static _ExternalFloat32x4Array _newTransferable(int length) {
242 return new _ExternalFloat32x4Array(length);
243 }
244 }
245
246
247 patch class Float32x4 {
248 /* patch */ factory Float32x4(double x, double y, double z, double w) {
249 return new _Float32x4(x, y, z, w);
250 }
251 /* patch */ factory Float32x4.zero() {
252 return new _Float32x4.zero();
253 }
254 }
255
256
257 patch class Uint32x4 {
258 /* patch */ factory Uint32x4(int x, int y, int z, int w) {
259 return new _Uint32x4(x, y, z, w);
260 }
261 /* patch */ factory Uint32x4.bool(bool x, bool y, bool z, bool w) {
262 return new _Uint32x4.bool(x, y, z, w);
263 }
264 }
265
266 227
267 patch class ByteData { 228 patch class ByteData {
268 /* patch */ factory ByteData(int length) { 229 /* patch */ factory ByteData(int length) {
269 var list = new _Uint8Array(length); 230 var list = new _Uint8Array(length);
270 return new _ByteDataView(list.buffer, 0, length); 231 return new _ByteDataView(list.buffer, 0, length);
271 } 232 }
272 233
273 /* patch */ factory ByteData.transferable(int length) { 234 /* patch */ factory ByteData.transferable(int length) {
274 var list = new _Uint8Array.transferable(length); 235 var list = new _Uint8Array.transferable(length);
275 return new _ByteDataView(list.buffer, 0, length); 236 return new _ByteDataView(list.buffer, 0, length);
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 int _getUint64(int offsetInBytes) native "TypedData_GetUint64"; 516 int _getUint64(int offsetInBytes) native "TypedData_GetUint64";
556 void _setUint64(int offsetInBytes, int value) native "TypedData_SetUint64"; 517 void _setUint64(int offsetInBytes, int value) native "TypedData_SetUint64";
557 518
558 double _getFloat32(int offsetInBytes) native "TypedData_GetFloat32"; 519 double _getFloat32(int offsetInBytes) native "TypedData_GetFloat32";
559 void _setFloat32(int offsetInBytes, double value) 520 void _setFloat32(int offsetInBytes, double value)
560 native "TypedData_SetFloat32"; 521 native "TypedData_SetFloat32";
561 522
562 double _getFloat64(int offsetInBytes) native "TypedData_GetFloat64"; 523 double _getFloat64(int offsetInBytes) native "TypedData_GetFloat64";
563 void _setFloat64(int offsetInBytes, double value) 524 void _setFloat64(int offsetInBytes, double value)
564 native "TypedData_SetFloat64"; 525 native "TypedData_SetFloat64";
565
566 Float32x4 _getFloat32x4(int offsetInBytes) native "TypedData_GetFloat32x4";
567 void _setFloat32x4(int offsetInBytes, Float32x4 value)
568 native "TypedData_SetFloat32x4";
569 } 526 }
570 527
571 528
572 class _Int8Array extends _TypedList implements Int8List { 529 class _Int8Array extends _TypedList implements Int8List {
573 // Factory constructors. 530 // Factory constructors.
574 531
575 factory _Int8Array(int length) { 532 factory _Int8Array(int length) {
576 if (length < 0) { 533 if (length < 0) {
577 String message = "$length must be greater than 0"; 534 String message = "$length must be greater than 0";
578 throw new ArgumentError(message); 535 throw new ArgumentError(message);
(...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 return _getFloat64(index * Float64List.BYTES_PER_ELEMENT); 1248 return _getFloat64(index * Float64List.BYTES_PER_ELEMENT);
1292 } 1249 }
1293 1250
1294 void _setIndexedFloat64(int index, double value) { 1251 void _setIndexedFloat64(int index, double value) {
1295 _setFloat64(index * Float64List.BYTES_PER_ELEMENT, value); 1252 _setFloat64(index * Float64List.BYTES_PER_ELEMENT, value);
1296 } 1253 }
1297 1254
1298 static _Float64Array _new(int length) native "TypedData_Float64Array_new"; 1255 static _Float64Array _new(int length) native "TypedData_Float64Array_new";
1299 } 1256 }
1300 1257
1301 class _Float32x4Array extends _TypedList implements Float32x4List {
1302 // Factory constructors.
1303
1304 factory _Float32x4Array(int length) {
1305 if (length < 0) {
1306 String message = "$length must be greater than 0";
1307 throw new ArgumentError(message);
1308 }
1309 return _new(length);
1310 }
1311
1312 factory _Float32x4Array.view(ByteBuffer buffer,
1313 [int offsetInBytes = 0, int length]) {
1314 if (length == null) {
1315 length = (buffer.lengthInBytes - offsetInBytes) ~/
1316 Float32x4List.BYTES_PER_ELEMENT;
1317 }
1318 return new _Float32x4ArrayView(buffer, offsetInBytes, length);
1319 }
1320
1321
1322 Float32x4 operator[](int index) {
1323 if (index < 0 || index >= length) {
1324 String message = "$index must be in the range [0..$length)";
1325 throw new RangeError(message);
1326 }
1327 return _getIndexedFloat32x4(index);
1328 }
1329
1330 void operator[]=(int index, Float32x4 value) {
1331 if (index < 0 || index >= length) {
1332 String message = "$index must be in the range [0..$length)";
1333 throw new RangeError(message);
1334 }
1335 _setIndexedFloat32x4(index, value);
1336 }
1337
1338 Iterator<Float32x4> get iterator {
1339 return new _TypedListIterator<Float32x4>(this);
1340 }
1341
1342
1343 // Method(s) implementing the TypedData interface.
1344
1345 int get elementSizeInBytes {
1346 return Float32x4List.BYTES_PER_ELEMENT;
1347 }
1348
1349
1350 // Internal utility methods.
1351
1352 _Float32x4Array _createList(int length) {
1353 return _new(length);
1354 }
1355
1356 Float32x4 _getIndexedFloat32x4(int index) {
1357 return _getFloat32x4(index * Float32x4List.BYTES_PER_ELEMENT);
1358 }
1359
1360 void _setIndexedFloat32x4(int index, Float32x4 value) {
1361 _setFloat32x4(index * Float32x4List.BYTES_PER_ELEMENT, value);
1362 }
1363
1364 static _Float32x4Array _new(int length) native "TypedData_Float32x4Array_new";
1365 }
1366
1367 1258
1368 class _ExternalInt8Array extends _TypedList implements Int8List { 1259 class _ExternalInt8Array extends _TypedList implements Int8List {
1369 // Factory constructors. 1260 // Factory constructors.
1370 1261
1371 factory _ExternalInt8Array(int length) { 1262 factory _ExternalInt8Array(int length) {
1372 if (length < 0) { 1263 if (length < 0) {
1373 String message = "$length must be greater than 0"; 1264 String message = "$length must be greater than 0";
1374 throw new ArgumentError(message); 1265 throw new ArgumentError(message);
1375 } 1266 }
1376 return _new(length); 1267 return _new(length);
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
2004 1895
2005 void _setIndexedFloat64(int index, double value) { 1896 void _setIndexedFloat64(int index, double value) {
2006 _setFloat64(index * Float64List.BYTES_PER_ELEMENT, value); 1897 _setFloat64(index * Float64List.BYTES_PER_ELEMENT, value);
2007 } 1898 }
2008 1899
2009 static _ExternalFloat64Array _new(int length) native 1900 static _ExternalFloat64Array _new(int length) native
2010 "ExternalTypedData_Float64Array_new"; 1901 "ExternalTypedData_Float64Array_new";
2011 } 1902 }
2012 1903
2013 1904
2014 class _ExternalFloat32x4Array extends _TypedList implements Float32x4List {
2015 // Factory constructors.
2016
2017 factory _ExternalFloat32x4Array(int length) {
2018 if (length < 0) {
2019 String message = "$length must be greater than 0";
2020 throw new ArgumentError(message);
2021 }
2022 return _new(length);
2023 }
2024
2025
2026 // Method(s) implementing the List interface.
2027
2028 Float32x4 operator[](int index) {
2029 if (index < 0 || index >= length) {
2030 String message = "$index must be in the range [0..$length)";
2031 throw new RangeError(message);
2032 }
2033 return _getIndexedFloat32x4(index);
2034 }
2035
2036 void operator[]=(int index, Float32x4 value) {
2037 if (index < 0 || index >= length) {
2038 String message = "$index must be in the range [0..$length)";
2039 throw new RangeError(message);
2040 }
2041 _setIndexedFloat32x4(index, value);
2042 }
2043
2044 Iterator<Float32x4> get iterator {
2045 return new _TypedListIterator<Float32x4>(this);
2046 }
2047
2048
2049 // Method(s) implementing the TypedData interface.
2050
2051 int get elementSizeInBytes {
2052 return Float32x4List.BYTES_PER_ELEMENT;
2053 }
2054
2055
2056 // Internal utility methods.
2057
2058 Float32x4List _createList(int length) {
2059 return new Float32x4List(length);
2060 }
2061
2062 Float32x4 _getIndexedFloat32x4(int index) {
2063 return _getFloat32x4(index * Float32x4List.BYTES_PER_ELEMENT);
2064 }
2065
2066 void _setIndexedFloat32x4(int index, Float32x4 value) {
2067 _setFloat32x4(index * Float32x4List.BYTES_PER_ELEMENT, value);
2068 }
2069
2070 static _ExternalFloat32x4Array _new(int length) native
2071 "ExternalTypedData_Float32x4Array_new";
2072 }
2073
2074
2075 class _Float32x4 implements Float32x4 {
2076 factory _Float32x4(double x, double y, double z, double w)
2077 native "Float32x4_fromDoubles";
2078 factory _Float32x4.zero() native "Float32x4_zero";
2079 Float32x4 operator +(Float32x4 other) {
2080 return _add(other);
2081 }
2082 Float32x4 _add(Float32x4 other) native "Float32x4_add";
2083 Float32x4 operator -() {
2084 return _negate();
2085 }
2086 Float32x4 _negate() native "Float32x4_negate";
2087 Float32x4 operator -(Float32x4 other) {
2088 return _sub(other);
2089 }
2090 Float32x4 _sub(Float32x4 other) native "Float32x4_sub";
2091 Float32x4 operator *(Float32x4 other) {
2092 return _mul(other);
2093 }
2094 Float32x4 _mul(Float32x4 other) native "Float32x4_mul";
2095 Float32x4 operator /(Float32x4 other) {
2096 return _div(other);
2097 }
2098 Float32x4 _div(Float32x4 other) native "Float32x4_div";
2099 Uint32x4 lessThan(Float32x4 other) {
2100 return _cmplt(other);
2101 }
2102 Uint32x4 _cmplt(Float32x4 other) native "Float32x4_cmplt";
2103 Uint32x4 lessThanOrEqual(Float32x4 other) {
2104 return _cmplte(other);
2105 }
2106 Uint32x4 _cmplte(Float32x4 other) native "Float32x4_cmplte";
2107 Uint32x4 greaterThan(Float32x4 other) {
2108 return _cmpgt(other);
2109 }
2110 Uint32x4 _cmpgt(Float32x4 other) native "Float32x4_cmpgt";
2111 Uint32x4 greaterThanOrEqual(Float32x4 other) {
2112 return _cmpgte(other);
2113 }
2114 Uint32x4 _cmpgte(Float32x4 other) native "Float32x4_cmpgte";
2115 Uint32x4 equal(Float32x4 other) {
2116 return _cmpequal(other);
2117 }
2118 Uint32x4 _cmpequal(Float32x4 other)
2119 native "Float32x4_cmpequal";
2120 Uint32x4 notEqual(Float32x4 other) {
2121 return _cmpnequal(other);
2122 }
2123 Uint32x4 _cmpnequal(Float32x4 other)
2124 native "Float32x4_cmpnequal";
2125 Float32x4 scale(double s) {
2126 return _scale(s);
2127 }
2128 Float32x4 _scale(double s) native "Float32x4_scale";
2129 Float32x4 abs() {
2130 return _abs();
2131 }
2132 Float32x4 _abs() native "Float32x4_abs";
2133 Float32x4 clamp(Float32x4 lowerLimit,
2134 Float32x4 upperLimit) {
2135 return _clamp(lowerLimit, upperLimit);
2136 }
2137 Float32x4 _clamp(Float32x4 lowerLimit,
2138 Float32x4 upperLimit)
2139 native "Float32x4_clamp";
2140 double get x native "Float32x4_getX";
2141 double get y native "Float32x4_getY";
2142 double get z native "Float32x4_getZ";
2143 double get w native "Float32x4_getW";
2144 Float32x4 get xxxx native "Float32x4_getXXXX";
2145 Float32x4 get yyyy native "Float32x4_getYYYY";
2146 Float32x4 get zzzz native "Float32x4_getZZZZ";
2147 Float32x4 get wwww native "Float32x4_getWWWW";
2148 Float32x4 withX(double x) native "Float32x4_setX";
2149 Float32x4 withY(double y) native "Float32x4_setY";
2150 Float32x4 withZ(double z) native "Float32x4_setZ";
2151 Float32x4 withW(double w) native "Float32x4_setW";
2152 Float32x4 min(Float32x4 other) {
2153 return _min(other);
2154 }
2155 Float32x4 _min(Float32x4 other) native "Float32x4_min";
2156 Float32x4 max(Float32x4 other) {
2157 return _max(other);
2158 }
2159 Float32x4 _max(Float32x4 other) native "Float32x4_max";
2160 Float32x4 sqrt() {
2161 return _sqrt();
2162 }
2163 Float32x4 _sqrt() native "Float32x4_sqrt";
2164 Float32x4 reciprocal() {
2165 return _reciprocal();
2166 }
2167 Float32x4 _reciprocal() native "Float32x4_reciprocal";
2168 Float32x4 reciprocalSqrt() {
2169 return _reciprocalSqrt();
2170 }
2171 Float32x4 _reciprocalSqrt() native "Float32x4_reciprocalSqrt";
2172 Uint32x4 toUint32x4() {
2173 return _toUint32x4();
2174 }
2175 Uint32x4 _toUint32x4() native "Float32x4_toUint32x4";
2176 }
2177
2178
2179 class _Uint32x4 implements Uint32x4 {
2180 factory _Uint32x4(int x, int y, int z, int w)
2181 native "Uint32x4_fromInts";
2182 factory _Uint32x4.bool(bool x, bool y, bool z, bool w)
2183 native "Uint32x4_fromBools";
2184 Uint32x4 operator |(Uint32x4 other) {
2185 return _or(other);
2186 }
2187 Uint32x4 _or(Uint32x4 other) native "Uint32x4_or";
2188 Uint32x4 operator &(Uint32x4 other) {
2189 return _and(other);
2190 }
2191 Uint32x4 _and(Uint32x4 other) native "Uint32x4_and";
2192 Uint32x4 operator ^(Uint32x4 other) {
2193 return _xor(other);
2194 }
2195 Uint32x4 _xor(Uint32x4 other) native "Uint32x4_xor";
2196 int get x native "Uint32x4_getX";
2197 int get y native "Uint32x4_getY";
2198 int get z native "Uint32x4_getZ";
2199 int get w native "Uint32x4_getW";
2200 Uint32x4 withX(int x) native "Uint32x4_setX";
2201 Uint32x4 withY(int y) native "Uint32x4_setY";
2202 Uint32x4 withZ(int z) native "Uint32x4_setZ";
2203 Uint32x4 withW(int w) native "Uint32x4_setW";
2204 bool get flagX native "Uint32x4_getFlagX";
2205 bool get flagY native "Uint32x4_getFlagY";
2206 bool get flagZ native "Uint32x4_getFlagZ";
2207 bool get flagW native "Uint32x4_getFlagW";
2208 Uint32x4 withFlagX(bool x) native "Uint32x4_setFlagX";
2209 Uint32x4 withFlagY(bool y) native "Uint32x4_setFlagY";
2210 Uint32x4 withFlagZ(bool z) native "Uint32x4_setFlagZ";
2211 Uint32x4 withFlagW(bool w) native "Uint32x4_setFlagW";
2212 Float32x4 select(Float32x4 trueValue,
2213 Float32x4 falseValue) {
2214 return _select(trueValue, falseValue);
2215 }
2216 Float32x4 _select(Float32x4 trueValue,
2217 Float32x4 falseValue)
2218 native "Uint32x4_select";
2219 Float32x4 toFloat32x4() {
2220 return _toFloat32x4();
2221 }
2222 Float32x4 _toFloat32x4() native "Uint32x4_toFloat32x4";
2223 }
2224
2225 class _TypedListIterator<E> implements Iterator<E> { 1905 class _TypedListIterator<E> implements Iterator<E> {
2226 final List<E> _array; 1906 final List<E> _array;
2227 final int _length; 1907 final int _length;
2228 int _position; 1908 int _position;
2229 E _current; 1909 E _current;
2230 1910
2231 _TypedListIterator(List array) 1911 _TypedListIterator(List array)
2232 : _array = array, _length = array.length, _position = -1 { 1912 : _array = array, _length = array.length, _position = -1 {
2233 assert(array is _TypedList || array is _TypedListView); 1913 assert(array is _TypedList || array is _TypedListView);
2234 } 1914 }
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
2773 2453
2774 2454
2775 // Method(s) implementing TypedData interface. 2455 // Method(s) implementing TypedData interface.
2776 2456
2777 int get elementSizeInBytes { 2457 int get elementSizeInBytes {
2778 return Float64List.BYTES_PER_ELEMENT; 2458 return Float64List.BYTES_PER_ELEMENT;
2779 } 2459 }
2780 } 2460 }
2781 2461
2782 2462
2783 class _Float32x4ArrayView extends _TypedListView implements Float32x4List {
2784 // Constructor.
2785 _Float32x4ArrayView(ByteBuffer buffer, [int _offsetInBytes = 0, int _length])
2786 : super(buffer, _offsetInBytes,
2787 _defaultIfNull(_length,
2788 ((buffer.lengthInBytes - _offsetInBytes) ~/
2789 Float32x4List.BYTES_PER_ELEMENT))) {
2790 _rangeCheck(buffer.lengthInBytes,
2791 offsetInBytes,
2792 length * Float32x4List.BYTES_PER_ELEMENT);
2793 }
2794
2795
2796 // Method(s) implementing List interface.
2797
2798 Float32x4 operator[](int index) {
2799 if (index < 0 || index >= length) {
2800 String message = "$index must be in the range [0..$length)";
2801 throw new RangeError(message);
2802 }
2803 return _typeddata._getFloat32x4(offsetInBytes +
2804 (index * Float32x4List.BYTES_PER_ELEMENT));
2805 }
2806
2807 void operator[]=(int index, Float32x4 value) {
2808 if (index < 0 || index >= length) {
2809 String message = "$index must be in the range [0..$length)";
2810 throw new RangeError(message);
2811 }
2812 _typeddata._setFloat32x4(offsetInBytes +
2813 (index * Float32x4List.BYTES_PER_ELEMENT), value);
2814 }
2815
2816 Iterator<Float32x4> get iterator {
2817 return new _TypedListIterator<Float32x4>(this);
2818 }
2819
2820
2821 // Method(s) implementing TypedData interface.
2822
2823 int get elementSizeInBytes {
2824 return Float32x4List.BYTES_PER_ELEMENT;
2825 }
2826 }
2827
2828
2829 class _ByteDataView implements ByteData { 2463 class _ByteDataView implements ByteData {
2830 _ByteDataView(ByteBuffer _buffer, int _offsetInBytes, int _lengthInBytes) 2464 _ByteDataView(ByteBuffer _buffer, int _offsetInBytes, int _lengthInBytes)
2831 : _typeddata = _buffer as TypedData, 2465 : _typeddata = _buffer as TypedData,
2832 _offset = _offsetInBytes, 2466 _offset = _offsetInBytes,
2833 length = _lengthInBytes { 2467 length = _lengthInBytes {
2834 _rangeCheck(_buffer.lengthInBytes, _offset, length); 2468 _rangeCheck(_buffer.lengthInBytes, _offset, length);
2835 } 2469 }
2836 2470
2837 2471
2838 // Method(s) implementing TypedData interface. 2472 // Method(s) implementing TypedData interface.
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
2914 _typeddata._setFloat32(_offset + byteOffset, value); 2548 _typeddata._setFloat32(_offset + byteOffset, value);
2915 } 2549 }
2916 2550
2917 double getFloat64(int byteOffset) { 2551 double getFloat64(int byteOffset) {
2918 return _typeddata._getFloat64(_offset + byteOffset); 2552 return _typeddata._getFloat64(_offset + byteOffset);
2919 } 2553 }
2920 void setFloat64(int byteOffset, double value) { 2554 void setFloat64(int byteOffset, double value) {
2921 _typeddata._setFloat64(_offset + byteOffset, value); 2555 _typeddata._setFloat64(_offset + byteOffset, value);
2922 } 2556 }
2923 2557
2924 Float32x4 getFloat32x4(int byteOffset) {
2925 return _typeddata._getFloat32x4(_offset + byteOffset);
2926 }
2927 void setFloat32x4(int byteOffset, Float32x4 value) {
2928 _typeddata._setFloat32x4(_offset + byteOffset, value);
2929
2930 }
2931
2932 final TypedData _typeddata; 2558 final TypedData _typeddata;
2933 final int _offset; 2559 final int _offset;
2934 final int length; 2560 final int length;
2935 } 2561 }
2936 2562
2937 2563
2938 // Top level utility methods. 2564 // Top level utility methods.
2939 int _toInt(int value, int mask) { 2565 int _toInt(int value, int mask) {
2940 value &= mask; 2566 value &= mask;
2941 if (value > (mask >> 1)) value -= mask + 1; 2567 if (value > (mask >> 1)) value -= mask + 1;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
3002 } 2628 }
3003 } 2629 }
3004 2630
3005 2631
3006 int _defaultIfNull(object, value) { 2632 int _defaultIfNull(object, value) {
3007 if (object == null) { 2633 if (object == null) {
3008 return value; 2634 return value;
3009 } 2635 }
3010 return object; 2636 return object;
3011 } 2637 }
OLDNEW
« no previous file with comments | « runtime/lib/typeddata.cc ('k') | runtime/vm/bootstrap_natives.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698