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

Unified Diff: pkg/dev_compiler/tool/input_sdk/patch/math_patch.dart

Issue 2994203002: Optimize DDC private library files. (Closed)
Patch Set: Address comments Created 3 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: pkg/dev_compiler/tool/input_sdk/patch/math_patch.dart
diff --git a/pkg/dev_compiler/tool/input_sdk/patch/math_patch.dart b/pkg/dev_compiler/tool/input_sdk/patch/math_patch.dart
index b37ba521b3e5b812409db9007d4274f04a33a1fa..c86c99864d02a11315d58ed1cddefd345787abc2 100644
--- a/pkg/dev_compiler/tool/input_sdk/patch/math_patch.dart
+++ b/pkg/dev_compiler/tool/input_sdk/patch/math_patch.dart
@@ -4,54 +4,64 @@
// Patch file for dart:math library.
import 'dart:_foreign_helper' show JS;
-import 'dart:_js_helper' show patch, checkNum;
+import 'dart:_js_helper' show patch, nullCheck, notNull;
import 'dart:typed_data' show ByteData;
@patch
-T min<T extends num>(T a, T b) =>
- JS('num', r'Math.min(#, #)', checkNum(a), checkNum(b)) as T;
+@notNull
+T min<T extends num>(@nullCheck T a, @nullCheck T b) =>
+ JS('-dynamic', r'Math.min(#, #)', a, b);
@patch
-T max<T extends num>(T a, T b) =>
- JS('num', r'Math.max(#, #)', checkNum(a), checkNum(b)) as T;
+@notNull
+T max<T extends num>(@nullCheck T a, @nullCheck T b) =>
+ JS('-dynamic', r'Math.max(#, #)', a, b);
@patch
-double sqrt(num x) => JS('num', r'Math.sqrt(#)', checkNum(x));
+@notNull
+double sqrt(@nullCheck num x) => JS('num', r'Math.sqrt(#)', x);
@patch
-double sin(num radians) => JS('num', r'Math.sin(#)', checkNum(radians));
+@notNull
+double sin(@nullCheck num radians) => JS('num', r'Math.sin(#)', radians);
@patch
-double cos(num radians) => JS('num', r'Math.cos(#)', checkNum(radians));
+@notNull
+double cos(@nullCheck num radians) => JS('num', r'Math.cos(#)', radians);
@patch
-double tan(num radians) => JS('num', r'Math.tan(#)', checkNum(radians));
+@notNull
+double tan(@nullCheck num radians) => JS('num', r'Math.tan(#)', radians);
@patch
-double acos(num x) => JS('num', r'Math.acos(#)', checkNum(x));
+@notNull
+double acos(@nullCheck num x) => JS('num', r'Math.acos(#)', x);
@patch
-double asin(num x) => JS('num', r'Math.asin(#)', checkNum(x));
+@notNull
+double asin(@nullCheck num x) => JS('num', r'Math.asin(#)', x);
@patch
-double atan(num x) => JS('num', r'Math.atan(#)', checkNum(x));
+@notNull
+double atan(@nullCheck num x) => JS('num', r'Math.atan(#)', x);
@patch
-double atan2(num a, num b) =>
- JS('num', r'Math.atan2(#, #)', checkNum(a), checkNum(b));
+@notNull
+double atan2(@nullCheck num a, @nullCheck num b) =>
+ JS('num', r'Math.atan2(#, #)', a, b);
@patch
-double exp(num x) => JS('num', r'Math.exp(#)', checkNum(x));
+@notNull
+double exp(@nullCheck num x) => JS('num', r'Math.exp(#)', x);
@patch
-double log(num x) => JS('num', r'Math.log(#)', checkNum(x));
+@notNull
+double log(@nullCheck num x) => JS('num', r'Math.log(#)', x);
@patch
-num pow(num x, num exponent) {
- checkNum(x);
- checkNum(exponent);
- return JS('num', r'Math.pow(#, #)', x, exponent);
-}
+@notNull
+num pow(@nullCheck num x, @nullCheck num exponent) =>
+ JS('num', r'Math.pow(#, #)', x, exponent);
const int _POW2_32 = 0x100000000;
@@ -71,6 +81,7 @@ class _JSRandom implements Random {
// The Dart2JS implementation of Random doesn't use a seed.
const _JSRandom();
+ @notNull
int nextInt(int max) {
if (max <= 0 || max > _POW2_32) {
throw new RangeError("max must be in range 0 < max ≤ 2^32, was $max");
@@ -82,11 +93,13 @@ class _JSRandom implements Random {
* Generates a positive random floating point value uniformly distributed on
* the range from 0.0, inclusive, to 1.0, exclusive.
*/
+ @notNull
double nextDouble() => JS("double", "Math.random()");
/**
* Generates a random boolean value.
*/
+ @notNull
bool nextBool() => JS("bool", "Math.random() < 0.5");
}
@@ -97,7 +110,9 @@ class _Random implements Random {
static const int _MASK32 = 0xFFFFFFFF;
// State comprised of two unsigned 32 bit integers.
+ @notNull
int _lo = 0;
+ @notNull
int _hi = 0;
// Implements:
@@ -207,7 +222,8 @@ class _Random implements Random {
assert(_hi < _POW2_32);
}
- int nextInt(int max) {
+ @notNull
+ int nextInt(@nullCheck int max) {
if (max <= 0 || max > _POW2_32) {
throw new RangeError("max must be in range 0 < max ≤ 2^32, was $max");
}
@@ -227,6 +243,7 @@ class _Random implements Random {
return result;
}
+ @notNull
double nextDouble() {
_nextState();
int bits26 = _lo & ((1 << 26) - 1);
@@ -235,6 +252,7 @@ class _Random implements Random {
return (bits26 * _POW2_27_D + bits27) / _POW2_53_D;
}
+ @notNull
bool nextBool() {
_nextState();
return (_lo & 1) == 0;
@@ -263,11 +281,13 @@ class _JSSecureRandom implements Random {
_buffer.buffer.asUint8List(start, length));
}
+ @notNull
bool nextBool() {
_getRandomBytes(0, 1);
return _buffer.getUint8(0).isOdd;
}
+ @notNull
double nextDouble() {
_getRandomBytes(1, 7);
// Set top bits 12 of double to 0x3FF which is the exponent for numbers
@@ -288,7 +308,8 @@ class _JSSecureRandom implements Random {
return result;
}
- int nextInt(int max) {
+ @notNull
+ int nextInt(@nullCheck int max) {
if (max <= 0 || max > _POW2_32) {
throw new RangeError("max must be in range 0 < max ≤ 2^32, was $max");
}

Powered by Google App Engine
This is Rietveld 408576698