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

Unified Diff: sdk/lib/_internal/compiler/implementation/lib/interceptors.dart

Issue 11275313: Move JsString into its own file. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 1 month 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
« no previous file with comments | « no previous file | sdk/lib/_internal/compiler/implementation/lib/js_string.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/_internal/compiler/implementation/lib/interceptors.dart
===================================================================
--- sdk/lib/_internal/compiler/implementation/lib/interceptors.dart (revision 14884)
+++ sdk/lib/_internal/compiler/implementation/lib/interceptors.dart (working copy)
@@ -2,101 +2,12 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-#library('dart:_interceptors');
+library _interceptors;
-#import('dart:collection');
+import 'dart:collection';
-/**
- * The interceptor class for [String]. The compiler recognizes this
- * class as an interceptor, and changes references to [:this:] to
- * actually use the receiver of the method, which is generated as an extra
- * argument added to each member.
- */
-class JSString implements String {
- const JSString();
+part 'js_string.dart';
- int charCodeAt(index) {
- if (index is !num) throw new ArgumentError(index);
- if (index < 0) throw new RangeError.value(index);
- if (index >= length) throw new RangeError.value(index);
- return JS('int', r'#.charCodeAt(#)', this, index);
- }
-
- Iterable<Match> allMatches(String str) {
- checkString(str);
- return allMatchesInStringUnchecked(this, str);
- }
-
- String concat(String other) {
- if (other is !String) throw new ArgumentError(other);
- return JS('String', r'# + #', this, other);
- }
-
- bool endsWith(String other) {
- checkString(other);
- int otherLength = other.length;
- if (otherLength > length) return false;
- return other == substring(length - otherLength);
- }
-
- String replaceAll(Pattern from, String to) {
- checkString(to);
- return stringReplaceAllUnchecked(this, from, to);
- }
-
- String replaceFirst(Pattern from, String to) {
- checkString(to);
- return stringReplaceFirstUnchecked(this, from, to);
- }
-
- List<String> split(Pattern pattern) {
- checkNull(pattern);
- return stringSplitUnchecked(this, pattern);
- }
-
- List<String> splitChars() {
- return JS('List', r'#.split("")', this);
- }
-
- bool startsWith(String other) {
- checkString(other);
- int otherLength = other.length;
- if (otherLength > length) return false;
- return JS('bool', r'# == #', other,
- JS('String', r'#.substring(0, #)', this, otherLength));
- }
-
- String substring(int startIndex, [int endIndex]) {
- checkNum(startIndex);
- if (endIndex == null) endIndex = length;
- checkNum(endIndex);
- if (startIndex < 0 ) throw new RangeError.value(startIndex);
- if (startIndex > endIndex) throw new RangeError.value(startIndex);
- if (endIndex > length) throw new RangeError.value(endIndex);
- return JS('String', r'#.substring(#, #)', this, startIndex, endIndex);
- }
-
- String toLowerCase() {
- return JS('String', r'#.toLowerCase()', this);
- }
-
- String toUpperCase() {
- return JS('String', r'#.toUpperCase()', this);
- }
-
- String trim() {
- return JS('String', r'#.trim()', this);
- }
-
- List<int> get charCodes {
- List<int> result = new List<int>(length);
- for (int i = 0; i < length; i++) {
- result[i] = charCodeAt(i);
- }
- return result;
- }
-}
-
/**
* The interceptor class for all non-primitive objects. All its
* members are synthethized by the compiler's emitter.
« no previous file with comments | « no previous file | sdk/lib/_internal/compiler/implementation/lib/js_string.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698