| 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];
|
|
|