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

Unified Diff: lib/runtime/dart_sdk.js

Side-by-side diff isn't available for this file because of its large size.
Issue 1947723002: Update core/errors.dart (Closed) Base URL: https://github.com/dart-lang/dev_compiler@master
Patch Set: Created 4 years, 7 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:
Download patch
« no previous file with comments | « no previous file | tool/input_sdk/lib/core/errors.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/runtime/dart_sdk.js
diff --git a/lib/runtime/dart_sdk.js b/lib/runtime/dart_sdk.js
index 6dc9efc15a537b2a32feafde66ce1dc07aef4a1d..6fc1c403f086217c8b419bc5a9b79c4330a7ce87 100644
--- a/lib/runtime/dart_sdk.js
+++ b/lib/runtime/dart_sdk.js
@@ -9119,39 +9119,39 @@ dart_library.library('dart_sdk', null, /* Imports */[
static stringFromCodePoints(codePoints) {
let a = dart.list([], core.int);
for (let i of dart.as(codePoints, core.Iterable)) {
- if (!(typeof i == 'number')) dart.throw(new core.ArgumentError(i));
+ if (!(typeof i == 'number')) dart.throw(_js_helper.argumentErrorValue(i));
if (dart.notNull(dart.as(dart.dsend(i, '<=', 65535), core.bool))) {
a[dartx.add](dart.as(i, core.int));
} else if (dart.notNull(dart.as(dart.dsend(i, '<=', 1114111), core.bool))) {
a[dartx.add](dart.asInt(55296 + dart.notNull(dart.as(dart.dsend(dart.dsend(dart.dsend(i, '-', 65536), '>>', 10), '&', 1023), core.num))));
a[dartx.add](dart.asInt(56320 + dart.notNull(dart.as(dart.dsend(i, '&', 1023), core.num))));
} else {
- dart.throw(new core.ArgumentError(i));
+ dart.throw(_js_helper.argumentErrorValue(i));
}
}
return _js_helper.Primitives._fromCharCodeApply(a);
}
static stringFromCharCodes(charCodes) {
for (let i of dart.as(charCodes, core.Iterable)) {
- if (!(typeof i == 'number')) dart.throw(new core.ArgumentError(i));
- if (dart.notNull(dart.as(dart.dsend(i, '<', 0), core.bool))) dart.throw(new core.ArgumentError(i));
+ if (!(typeof i == 'number')) dart.throw(_js_helper.argumentErrorValue(i));
+ if (dart.notNull(dart.as(dart.dsend(i, '<', 0), core.bool))) dart.throw(_js_helper.argumentErrorValue(i));
if (dart.notNull(dart.as(dart.dsend(i, '>', 65535), core.bool))) return _js_helper.Primitives.stringFromCodePoints(charCodes);
}
return _js_helper.Primitives._fromCharCodeApply(dart.as(charCodes, core.List$(core.int)));
}
static stringFromCharCode(charCode) {
- if (0 <= dart.notNull(dart.as(charCode, core.num))) {
- if (dart.notNull(dart.as(dart.dsend(charCode, '<=', 65535), core.bool))) {
+ if (0 <= dart.notNull(charCode)) {
+ if (dart.notNull(charCode) <= 65535) {
return String.fromCharCode(charCode);
}
- if (dart.notNull(dart.as(dart.dsend(charCode, '<=', 1114111), core.bool))) {
- let bits = dart.dsend(charCode, '-', 65536);
- let low = (56320 | dart.notNull(dart.as(dart.dsend(bits, '&', 1023), core.int))) >>> 0;
- let high = (55296 | dart.notNull(dart.as(dart.dsend(bits, '>>', 10), core.int))) >>> 0;
+ if (dart.notNull(charCode) <= 1114111) {
+ let bits = dart.notNull(charCode) - 65536;
+ let low = 56320 | bits & 1023;
+ let high = (55296 | bits[dartx['>>']](10)) >>> 0;
return String.fromCharCode(high, low);
}
}
- dart.throw(new core.RangeError.range(dart.as(charCode, core.num), 0, 1114111));
+ dart.throw(new core.RangeError.range(charCode, 0, 1114111));
}
static stringConcatUnchecked(string1, string2) {
return _foreign_helper.JS_STRING_CONCAT(string1, string2);
@@ -9236,20 +9236,20 @@ dart_library.library('dart_sdk', null, /* Imports */[
return (weekday + 6)[dartx['%']](7) + 1;
}
static valueFromDateString(str) {
- if (!(typeof str == 'string')) dart.throw(new core.ArgumentError(str));
+ if (!(typeof str == 'string')) dart.throw(_js_helper.argumentErrorValue(str));
let value = Date.parse(str);
- if (dart.notNull(value[dartx.isNaN])) dart.throw(new core.ArgumentError(str));
+ if (dart.notNull(value[dartx.isNaN])) dart.throw(_js_helper.argumentErrorValue(str));
return value;
}
static getProperty(object, key) {
if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
- dart.throw(new core.ArgumentError(object));
+ dart.throw(_js_helper.argumentErrorValue(object));
}
return object[key];
}
static setProperty(object, key, value) {
if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
- dart.throw(new core.ArgumentError(object));
+ dart.throw(_js_helper.argumentErrorValue(object));
}
object[key] = value;
}
@@ -9275,7 +9275,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
_fromCharCodeApply: [core.String, [core.List$(core.int)]],
stringFromCodePoints: [core.String, [dart.dynamic]],
stringFromCharCodes: [core.String, [dart.dynamic]],
- stringFromCharCode: [core.String, [dart.dynamic]],
+ stringFromCharCode: [core.String, [core.int]],
stringConcatUnchecked: [core.String, [core.String, core.String]],
flattenString: [core.String, [core.String]],
getTimeZoneName: [core.String, [dart.dynamic]],
@@ -9304,40 +9304,63 @@ dart_library.library('dart_sdk', null, /* Imports */[
_js_helper.Primitives.DOLLAR_CHAR_VALUE = 36;
_js_helper.Primitives.timerFrequency = null;
_js_helper.Primitives.timerTicks = null;
+ _js_helper.diagnoseIndexError = function(indexable, index) {
+ if (!(typeof index == 'number')) return new core.ArgumentError.value(index, 'index');
+ let length = dart.as(dart.dload(indexable, 'length'), core.int);
+ if (dart.notNull(dart.as(dart.dsend(index, '<', 0), core.bool)) || dart.notNull(dart.as(dart.dsend(index, '>=', length), core.bool))) {
+ return core.RangeError.index(dart.as(index, core.int), indexable, 'index', null, length);
+ }
+ return new core.RangeError.value(dart.as(index, core.num), 'index');
+ };
+ dart.lazyFn(_js_helper.diagnoseIndexError, () => [core.Error, [dart.dynamic, dart.dynamic]]);
+ _js_helper.diagnoseRangeError = function(start, end, length) {
+ if (!(typeof start == 'number')) {
+ return new core.ArgumentError.value(start, 'start');
+ }
+ if (dart.notNull(dart.as(dart.dsend(start, '<', 0), core.bool)) || dart.notNull(dart.as(dart.dsend(start, '>', length), core.bool))) {
+ return new core.RangeError.range(dart.as(start, core.num), 0, dart.as(length, core.int), 'start');
+ }
+ if (end != null) {
+ if (!(typeof end == 'number')) {
+ return new core.ArgumentError.value(end, 'end');
+ }
+ if (dart.notNull(dart.as(dart.dsend(end, '<', start), core.bool)) || dart.notNull(dart.as(dart.dsend(end, '>', length), core.bool))) {
+ return new core.RangeError.range(dart.as(end, core.num), dart.as(start, core.int), dart.as(length, core.int), 'end');
+ }
+ }
+ return new core.ArgumentError.value(end, "end");
+ };
+ dart.lazyFn(_js_helper.diagnoseRangeError, () => [core.Error, [dart.dynamic, dart.dynamic, dart.dynamic]]);
_js_helper.stringLastIndexOfUnchecked = function(receiver, element, start) {
return receiver.lastIndexOf(element, start);
};
dart.fn(_js_helper.stringLastIndexOfUnchecked);
+ _js_helper.argumentErrorValue = function(object) {
+ return new core.ArgumentError.value(object);
+ };
+ dart.lazyFn(_js_helper.argumentErrorValue, () => [core.ArgumentError, [dart.dynamic]]);
_js_helper.checkNull = function(object) {
- if (object == null) dart.throw(new core.ArgumentError(null));
+ if (object == null) dart.throw(_js_helper.argumentErrorValue(object));
return object;
};
dart.fn(_js_helper.checkNull);
_js_helper.checkNum = function(value) {
- if (!(typeof value == 'number')) {
- dart.throw(new core.ArgumentError(value));
- }
+ if (!(typeof value == 'number')) dart.throw(_js_helper.argumentErrorValue(value));
return value;
};
dart.fn(_js_helper.checkNum);
_js_helper.checkInt = function(value) {
- if (!(typeof value == 'number')) {
- dart.throw(new core.ArgumentError(value));
- }
+ if (!(typeof value == 'number')) dart.throw(_js_helper.argumentErrorValue(value));
return value;
};
dart.fn(_js_helper.checkInt);
_js_helper.checkBool = function(value) {
- if (!(typeof value == 'boolean')) {
- dart.throw(new core.ArgumentError(value));
- }
+ if (!(typeof value == 'boolean')) dart.throw(_js_helper.argumentErrorValue(value));
return value;
};
dart.fn(_js_helper.checkBool);
_js_helper.checkString = function(value) {
- if (!(typeof value == 'string')) {
- dart.throw(new core.ArgumentError(value));
- }
+ if (!(typeof value == 'string')) dart.throw(_js_helper.argumentErrorValue(value));
return value;
};
dart.fn(_js_helper.checkString);
@@ -26563,6 +26586,8 @@ dart_library.library('dart_sdk', null, /* Imports */[
}
};
const _hasValue$ = Symbol('_hasValue');
+ const _errorName = Symbol('_errorName');
+ const _errorExplanation = Symbol('_errorExplanation');
core.ArgumentError = class ArgumentError extends core.Error {
ArgumentError(message) {
if (message === void 0) message = null;
@@ -26574,7 +26599,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
}
value(value, name, message) {
if (name === void 0) name = null;
- if (message === void 0) message = "Invalid argument";
+ if (message === void 0) message = null;
this.name = name;
this.message = message;
this.invalidValue = value;
@@ -26583,21 +26608,29 @@ dart_library.library('dart_sdk', null, /* Imports */[
}
notNull(name) {
if (name === void 0) name = null;
- this.value(null, name, "Must not be null");
+ this.name = name;
+ this[_hasValue$] = false;
+ this.message = "Must not be null";
+ this.invalidValue = null;
+ super.Error();
+ }
+ get [_errorName]() {
+ return `Invalid argument${!dart.notNull(this[_hasValue$]) ? "(s)" : ""}`;
+ }
+ get [_errorExplanation]() {
+ return "";
}
toString() {
- if (!dart.notNull(this[_hasValue$])) {
- let result = "Invalid arguments(s)";
- if (this.message != null) {
- result = `${result}: ${this.message}`;
- }
- return result;
- }
let nameString = "";
if (this.name != null) {
nameString = ` (${this.name})`;
}
- return `${this.message}${nameString}: ${core.Error.safeToString(this.invalidValue)}`;
+ let message = this.message == null ? "" : `: ${this.message}`;
+ let prefix = `${this[_errorName]}${nameString}${message}`;
+ if (!dart.notNull(this[_hasValue$])) return prefix;
+ let explanation = this[_errorExplanation];
+ let errorValue = core.Error.safeToString(this.invalidValue);
+ return `${prefix}${explanation}: ${errorValue}`;
}
};
dart.defineNamedConstructor(core.ArgumentError, 'value');
@@ -26644,7 +26677,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
if (length === void 0) length = null;
if (message === void 0) message = null;
if (length == null) length = dart.as(dart.dload(indexable, 'length'), core.int);
- if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(length)) {
+ if (0 > dart.notNull(index) || dart.notNull(index) >= dart.notNull(length)) {
if (name == null) name = "index";
dart.throw(core.RangeError.index(index, indexable, name, message, length));
}
@@ -26653,23 +26686,29 @@ dart_library.library('dart_sdk', null, /* Imports */[
if (startName === void 0) startName = null;
if (endName === void 0) endName = null;
if (message === void 0) message = null;
- if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(length)) {
+ if (0 > dart.notNull(start) || dart.notNull(start) > dart.notNull(length)) {
if (startName == null) startName = "start";
dart.throw(new core.RangeError.range(start, 0, length, startName, message));
}
- if (end != null && (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart.notNull(length))) {
- if (endName == null) endName = "end";
- dart.throw(new core.RangeError.range(end, start, length, endName, message));
+ if (end != null) {
+ if (dart.notNull(start) > dart.notNull(end) || dart.notNull(end) > dart.notNull(length)) {
+ if (endName == null) endName = "end";
+ dart.throw(new core.RangeError.range(end, start, length, endName, message));
+ }
+ return end;
}
+ return length;
}
static checkNotNegative(value, name, message) {
if (name === void 0) name = null;
if (message === void 0) message = null;
if (dart.notNull(value) < 0) dart.throw(new core.RangeError.range(value, 0, null, name, message));
}
- toString() {
- if (!dart.notNull(this[_hasValue$])) return `RangeError: ${this.message}`;
- let value = core.Error.safeToString(this.invalidValue);
+ get [_errorName]() {
+ return "RangeError";
+ }
+ get [_errorExplanation]() {
+ dart.assert(this[_hasValue$]);
let explanation = "";
if (this.start == null) {
if (this.end != null) {
@@ -26678,13 +26717,13 @@ dart_library.library('dart_sdk', null, /* Imports */[
} else if (this.end == null) {
explanation = `: Not greater than or equal to ${this.start}`;
} else if (dart.notNull(this.end) > dart.notNull(this.start)) {
- explanation = `: Not in range ${this.start}..${this.end}, inclusive.`;
+ explanation = `: Not in range ${this.start}..${this.end}, inclusive`;
} else if (dart.notNull(this.end) < dart.notNull(this.start)) {
explanation = ": Valid value range is empty";
} else {
explanation = `: Only valid value is ${this.start}`;
}
- return `RangeError: ${this.message} (${value})${explanation}`;
+ return explanation;
}
};
dart.defineNamedConstructor(core.RangeError, 'value');
@@ -26699,7 +26738,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
statics: () => ({
checkValueInInterval: [dart.void, [core.int, core.int, core.int], [core.String, core.String]],
checkValidIndex: [dart.void, [core.int, dart.dynamic], [core.String, core.int, core.String]],
- checkValidRange: [dart.void, [core.int, core.int, core.int], [core.String, core.String, core.String]],
+ checkValidRange: [core.int, [core.int, core.int, core.int], [core.String, core.String, core.String]],
checkNotNegative: [dart.void, [core.int], [core.String, core.String]]
}),
names: ['checkValueInInterval', 'checkValidIndex', 'checkValidRange', 'checkNotNegative']
@@ -26719,14 +26758,18 @@ dart_library.library('dart_sdk', null, /* Imports */[
get end() {
return dart.notNull(this.length) - 1;
}
- toString() {
+ get [_errorName]() {
+ return "RangeError";
+ }
+ get [_errorExplanation]() {
dart.assert(this[_hasValue$]);
- let target = core.Error.safeToString(this.indexable);
- let explanation = `index should be less than ${this.length}`;
if (dart.notNull(dart.as(dart.dsend(this.invalidValue, '<', 0), core.bool))) {
- explanation = "index must not be negative";
+ return ": index must not be negative";
+ }
+ if (this.length == 0) {
+ return ": no indices are valid";
}
- return `RangeError: ${this.message} (${target}[${this.invalidValue}]): ${explanation}`;
+ return `: index should be less than ${this.length}`;
}
};
core.IndexError[dart.implements] = () => [core.RangeError];
« no previous file with comments | « no previous file | tool/input_sdk/lib/core/errors.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698