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

Side by Side Diff: lib/runtime/dart/core.js

Issue 1147143007: fixes #206, add checking for unary ops (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 6 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
OLDNEW
1 var core = dart.defineLibrary(core, {}); 1 var core = dart.defineLibrary(core, {});
2 var _js_helper = dart.lazyImport(_js_helper); 2 var _js_helper = dart.lazyImport(_js_helper);
3 var _internal = dart.lazyImport(_internal); 3 var _internal = dart.lazyImport(_internal);
4 var collection = dart.lazyImport(collection); 4 var collection = dart.lazyImport(collection);
5 var _interceptors = dart.lazyImport(_interceptors); 5 var _interceptors = dart.lazyImport(_interceptors);
6 var math = dart.lazyImport(math); 6 var math = dart.lazyImport(math);
7 var convert = dart.lazyImport(convert); 7 var convert = dart.lazyImport(convert);
8 (function(exports, _js_helper, _internal, collection, _interceptors, math, conve rt) { 8 (function(exports, _js_helper, _internal, collection, _interceptors, math, conve rt) {
9 'use strict'; 9 'use strict';
10 class Object { 10 class Object {
(...skipping 842 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 get start() { 853 get start() {
854 return 0; 854 return 0;
855 } 855 }
856 get end() { 856 get end() {
857 return dart.notNull(this.length) - 1; 857 return dart.notNull(this.length) - 1;
858 } 858 }
859 toString() { 859 toString() {
860 dart.assert(this[_hasValue]); 860 dart.assert(this[_hasValue]);
861 let target = Error.safeToString(this.indexable); 861 let target = Error.safeToString(this.indexable);
862 let explanation = `index should be less than ${this.length}`; 862 let explanation = `index should be less than ${this.length}`;
863 if (dart.dsend(this.invalidValue, '<', 0)) { 863 if (dart.as(dart.dsend(this.invalidValue, '<', 0), bool)) {
864 explanation = "index must not be negative"; 864 explanation = "index must not be negative";
865 } 865 }
866 return `RangeError: ${this.message} (${target}[${this.invalidValue}]): ${e xplanation}`; 866 return `RangeError: ${this.message} (${target}[${this.invalidValue}]): ${e xplanation}`;
867 } 867 }
868 } 868 }
869 IndexError[dart.implements] = () => [RangeError]; 869 IndexError[dart.implements] = () => [RangeError];
870 dart.setSignature(IndexError, { 870 dart.setSignature(IndexError, {
871 constructors: () => ({IndexError: [IndexError, [int, Object], [String, Strin g, int]]}) 871 constructors: () => ({IndexError: [IndexError, [int, Object], [String, Strin g, int]]})
872 }); 872 });
873 class FallThroughError extends Error { 873 class FallThroughError extends Error {
(...skipping 1807 matching lines...) Expand 10 before | Expand all | Expand 10 after
2681 let uri = _js_helper.Primitives.currentUri(); 2681 let uri = _js_helper.Primitives.currentUri();
2682 if (uri != null) 2682 if (uri != null)
2683 return Uri.parse(uri); 2683 return Uri.parse(uri);
2684 throw new UnsupportedError("'Uri.base' is not supported"); 2684 throw new UnsupportedError("'Uri.base' is not supported");
2685 } 2685 }
2686 static get _isWindows() { 2686 static get _isWindows() {
2687 return false; 2687 return false;
2688 } 2688 }
2689 static _checkNonWindowsPathReservedCharacters(segments, argumentError) { 2689 static _checkNonWindowsPathReservedCharacters(segments, argumentError) {
2690 segments[$forEach](dart.fn(segment => { 2690 segments[$forEach](dart.fn(segment => {
2691 if (dart.dsend(segment, 'contains', "/")) { 2691 if (dart.as(dart.dsend(segment, 'contains', "/"), bool)) {
2692 if (argumentError) { 2692 if (argumentError) {
2693 throw new ArgumentError(`Illegal path character ${segment}`); 2693 throw new ArgumentError(`Illegal path character ${segment}`);
2694 } else { 2694 } else {
2695 throw new UnsupportedError(`Illegal path character ${segment}`); 2695 throw new UnsupportedError(`Illegal path character ${segment}`);
2696 } 2696 }
2697 } 2697 }
2698 })); 2698 }));
2699 } 2699 }
2700 static _checkWindowsPathReservedCharacters(segments, argumentError, firstSeg ment) { 2700 static _checkWindowsPathReservedCharacters(segments, argumentError, firstSeg ment) {
2701 if (firstSegment === void 0) 2701 if (firstSegment === void 0)
2702 firstSegment = 0; 2702 firstSegment = 0;
2703 segments[$skip](firstSegment)[$forEach](dart.fn(segment => { 2703 segments[$skip](firstSegment)[$forEach](dart.fn(segment => {
2704 if (dart.dsend(segment, 'contains', RegExp.new('["*/:<>?\\\\|]'))) { 2704 if (dart.as(dart.dsend(segment, 'contains', RegExp.new('["*/:<>?\\\\|]') ), bool)) {
2705 if (argumentError) { 2705 if (argumentError) {
2706 throw new ArgumentError("Illegal character in path"); 2706 throw new ArgumentError("Illegal character in path");
2707 } else { 2707 } else {
2708 throw new UnsupportedError("Illegal character in path"); 2708 throw new UnsupportedError("Illegal character in path");
2709 } 2709 }
2710 } 2710 }
2711 })); 2711 }));
2712 } 2712 }
2713 static _checkWindowsDriveLetter(charCode, argumentError) { 2713 static _checkWindowsDriveLetter(charCode, argumentError) {
2714 if (dart.notNull(Uri._UPPER_CASE_A) <= dart.notNull(charCode) && dart.notN ull(charCode) <= dart.notNull(Uri._UPPER_CASE_Z) || dart.notNull(Uri._LOWER_CASE _A) <= dart.notNull(charCode) && dart.notNull(charCode) <= dart.notNull(Uri._LOW ER_CASE_Z)) { 2714 if (dart.notNull(Uri._UPPER_CASE_A) <= dart.notNull(charCode) && dart.notN ull(charCode) <= dart.notNull(Uri._UPPER_CASE_Z) || dart.notNull(Uri._LOWER_CASE _A) <= dart.notNull(charCode) && dart.notNull(charCode) <= dart.notNull(Uri._LOW ER_CASE_Z)) {
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
2977 return isFile ? "/" : ""; 2977 return isFile ? "/" : "";
2978 if (path != null && dart.notNull(pathSegments != null)) { 2978 if (path != null && dart.notNull(pathSegments != null)) {
2979 throw new ArgumentError('Both path and pathSegments specified'); 2979 throw new ArgumentError('Both path and pathSegments specified');
2980 } 2980 }
2981 let result = null; 2981 let result = null;
2982 if (path != null) { 2982 if (path != null) {
2983 result = Uri._normalize(path, start, end, dart.as(Uri._pathCharOrSlashTa ble, List$(int))); 2983 result = Uri._normalize(path, start, end, dart.as(Uri._pathCharOrSlashTa ble, List$(int)));
2984 } else { 2984 } else {
2985 result = pathSegments[$map](dart.fn(s => Uri._uriEncode(dart.as(Uri._pat hCharTable, List$(int)), dart.as(s, String)), String, [Object]))[$join]("/"); 2985 result = pathSegments[$map](dart.fn(s => Uri._uriEncode(dart.as(Uri._pat hCharTable, List$(int)), dart.as(s, String)), String, [Object]))[$join]("/");
2986 } 2986 }
2987 if (dart.dload(result, 'isEmpty')) { 2987 if (dart.as(dart.dload(result, 'isEmpty'), bool)) {
2988 if (isFile) 2988 if (isFile)
2989 return "/"; 2989 return "/";
2990 } else if ((dart.notNull(isFile) || dart.notNull(ensureLeadingSlash)) && d art.notNull(!dart.equals(dart.dsend(result, 'codeUnitAt', 0), Uri._SLASH))) { 2990 } else if ((dart.notNull(isFile) || dart.notNull(ensureLeadingSlash)) && d art.notNull(!dart.equals(dart.dsend(result, 'codeUnitAt', 0), Uri._SLASH))) {
2991 return `/${result}`; 2991 return `/${result}`;
2992 } 2992 }
2993 return dart.as(result, String); 2993 return dart.as(result, String);
2994 } 2994 }
2995 static _makeQuery(query, start, end, queryParameters) { 2995 static _makeQuery(query, start, end, queryParameters) {
2996 if (query == null && dart.notNull(queryParameters == null)) 2996 if (query == null && dart.notNull(queryParameters == null))
2997 return null; 2997 return null;
2998 if (query != null && dart.notNull(queryParameters != null)) { 2998 if (query != null && dart.notNull(queryParameters != null)) {
2999 throw new ArgumentError('Both query and queryParameters specified'); 2999 throw new ArgumentError('Both query and queryParameters specified');
3000 } 3000 }
3001 if (query != null) 3001 if (query != null)
3002 return Uri._normalize(query, start, end, dart.as(Uri._queryCharTable, Li st$(int))); 3002 return Uri._normalize(query, start, end, dart.as(Uri._queryCharTable, Li st$(int)));
3003 let result = new StringBuffer(); 3003 let result = new StringBuffer();
3004 let first = true; 3004 let first = true;
3005 queryParameters.forEach(dart.fn((key, value) => { 3005 queryParameters.forEach(dart.fn((key, value) => {
3006 if (!dart.notNull(first)) { 3006 if (!dart.notNull(first)) {
3007 result.write("&"); 3007 result.write("&");
3008 } 3008 }
3009 first = false; 3009 first = false;
3010 result.write(Uri.encodeQueryComponent(dart.as(key, String))); 3010 result.write(Uri.encodeQueryComponent(dart.as(key, String)));
3011 if (dart.notNull(value != null) && dart.notNull(dart.dsend(dart.dload(va lue, 'isEmpty'), '!'))) { 3011 if (dart.notNull(value != null) && !dart.notNull(dart.as(dart.dload(valu e, 'isEmpty'), bool))) {
3012 result.write("="); 3012 result.write("=");
3013 result.write(Uri.encodeQueryComponent(dart.as(value, String))); 3013 result.write(Uri.encodeQueryComponent(dart.as(value, String)));
3014 } 3014 }
3015 })); 3015 }));
3016 return dart.toString(result); 3016 return dart.toString(result);
3017 } 3017 }
3018 static _makeFragment(fragment, start, end) { 3018 static _makeFragment(fragment, start, end) {
3019 if (fragment == null) 3019 if (fragment == null)
3020 return null; 3020 return null;
3021 return Uri._normalize(fragment, start, end, dart.as(Uri._queryCharTable, L ist$(int))); 3021 return Uri._normalize(fragment, start, end, dart.as(Uri._queryCharTable, L ist$(int)));
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
3058 } 3058 }
3059 return null; 3059 return null;
3060 } 3060 }
3061 static _isUnreservedChar(ch) { 3061 static _isUnreservedChar(ch) {
3062 return dart.notNull(ch) < 127 && dart.notNull(!dart.equals(dart.dsend(Uri. _unreservedTable[$get](dart.notNull(ch) >> 4), '&', 1 << (dart.notNull(ch) & 15) ), 0)); 3062 return dart.notNull(ch) < 127 && dart.notNull(!dart.equals(dart.dsend(Uri. _unreservedTable[$get](dart.notNull(ch) >> 4), '&', 1 << (dart.notNull(ch) & 15) ), 0));
3063 } 3063 }
3064 static _escapeChar(char) { 3064 static _escapeChar(char) {
3065 dart.assert(dart.dsend(char, '<=', 1114111)); 3065 dart.assert(dart.dsend(char, '<=', 1114111));
3066 let hexDigits = "0123456789ABCDEF"; 3066 let hexDigits = "0123456789ABCDEF";
3067 let codeUnits = null; 3067 let codeUnits = null;
3068 if (dart.dsend(char, '<', 128)) { 3068 if (dart.as(dart.dsend(char, '<', 128), bool)) {
3069 codeUnits = List.new(3); 3069 codeUnits = List.new(3);
3070 codeUnits[$set](0, Uri._PERCENT); 3070 codeUnits[$set](0, Uri._PERCENT);
3071 codeUnits[$set](1, hexDigits.codeUnitAt(dart.as(dart.dsend(char, '>>', 4 ), int))); 3071 codeUnits[$set](1, hexDigits.codeUnitAt(dart.as(dart.dsend(char, '>>', 4 ), int)));
3072 codeUnits[$set](2, hexDigits.codeUnitAt(dart.as(dart.dsend(char, '&', 15 ), int))); 3072 codeUnits[$set](2, hexDigits.codeUnitAt(dart.as(dart.dsend(char, '&', 15 ), int)));
3073 } else { 3073 } else {
3074 let flag = 192; 3074 let flag = 192;
3075 let encodedBytes = 2; 3075 let encodedBytes = 2;
3076 if (dart.dsend(char, '>', 2047)) { 3076 if (dart.as(dart.dsend(char, '>', 2047), bool)) {
3077 flag = 224; 3077 flag = 224;
3078 encodedBytes = 3; 3078 encodedBytes = 3;
3079 if (dart.dsend(char, '>', 65535)) { 3079 if (dart.as(dart.dsend(char, '>', 65535), bool)) {
3080 encodedBytes = 4; 3080 encodedBytes = 4;
3081 flag = 240; 3081 flag = 240;
3082 } 3082 }
3083 } 3083 }
3084 codeUnits = List.new(3 * dart.notNull(encodedBytes)); 3084 codeUnits = List.new(3 * dart.notNull(encodedBytes));
3085 let index = 0; 3085 let index = 0;
3086 while ((encodedBytes = dart.notNull(encodedBytes) - 1) >= 0) { 3086 while ((encodedBytes = dart.notNull(encodedBytes) - 1) >= 0) {
3087 let byte = dart.as(dart.dsend(dart.dsend(dart.dsend(char, '>>', 6 * da rt.notNull(encodedBytes)), '&', 63), '|', flag), int); 3087 let byte = dart.as(dart.dsend(dart.dsend(dart.dsend(char, '>>', 6 * da rt.notNull(encodedBytes)), '&', 63), '|', flag), int);
3088 codeUnits[$set](index, Uri._PERCENT); 3088 codeUnits[$set](index, Uri._PERCENT);
3089 codeUnits[$set](dart.notNull(index) + 1, hexDigits.codeUnitAt(dart.not Null(byte) >> 4)); 3089 codeUnits[$set](dart.notNull(index) + 1, hexDigits.codeUnitAt(dart.not Null(byte) >> 4));
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after
3876 exports.Stopwatch = Stopwatch; 3876 exports.Stopwatch = Stopwatch;
3877 exports.String = String; 3877 exports.String = String;
3878 exports.RuneIterator = RuneIterator; 3878 exports.RuneIterator = RuneIterator;
3879 exports.StringBuffer = StringBuffer; 3879 exports.StringBuffer = StringBuffer;
3880 exports.StringSink = StringSink; 3880 exports.StringSink = StringSink;
3881 exports.Symbol = Symbol; 3881 exports.Symbol = Symbol;
3882 exports.Type = Type; 3882 exports.Type = Type;
3883 exports.Uri = Uri; 3883 exports.Uri = Uri;
3884 exports.SupportJsExtensionMethods = SupportJsExtensionMethods; 3884 exports.SupportJsExtensionMethods = SupportJsExtensionMethods;
3885 })(core, _js_helper, _internal, collection, _interceptors, math, convert); 3885 })(core, _js_helper, _internal, collection, _interceptors, math, convert);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698