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

Side by Side Diff: pkg/path/lib/path.dart

Issue 19939004: Use window.location.href in path under dart2js. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | pkg/path/test/browser_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// A comprehensive, cross-platform path manipulation library. 5 /// A comprehensive, cross-platform path manipulation library.
6 /// 6 ///
7 /// ## Installing ## 7 /// ## Installing ##
8 /// 8 ///
9 /// Use [pub][] to install this package. Add the following to your 9 /// Use [pub][] to install this package. Add the following to your
10 /// `pubspec.yaml` file. 10 /// `pubspec.yaml` file.
11 /// 11 ///
12 /// dependencies: 12 /// dependencies:
13 /// path: any 13 /// path: any
14 /// 14 ///
15 /// Then run `pub install`. 15 /// Then run `pub install`.
16 /// 16 ///
17 /// For more information, see the [path package on pub.dartlang.org][pkg]. 17 /// For more information, see the [path package on pub.dartlang.org][pkg].
18 /// 18 ///
19 /// [pub]: http://pub.dartlang.org 19 /// [pub]: http://pub.dartlang.org
20 /// [pkg]: http://pub.dartlang.org/packages/path 20 /// [pkg]: http://pub.dartlang.org/packages/path
21 library path; 21 library path;
22 22
23 @MirrorsUsed(targets: 'dart.dom.html.window, '
24 'dart.io.Directory.current, '
25 'dart.io.Platform.operatingSystem')
23 import 'dart:mirrors'; 26 import 'dart:mirrors';
24 27
25 /// An internal builder for the current OS so we can provide a straight 28 /// An internal builder for the current OS so we can provide a straight
26 /// functional interface and not require users to create one. 29 /// functional interface and not require users to create one.
27 final _builder = new Builder(); 30 final _builder = new Builder();
28 31
29 /** 32 /**
30 * Inserts [length] elements in front of the [list] and fills them with the 33 * Inserts [length] elements in front of the [list] and fills them with the
31 * [fillValue]. 34 * [fillValue].
32 */ 35 */
33 void _growListFront(List list, int length, fillValue) => 36 void _growListFront(List list, int length, fillValue) =>
34 list.insertAll(0, new List.filled(length, fillValue)); 37 list.insertAll(0, new List.filled(length, fillValue));
35 38
36 /// If we're running in the server-side Dart VM, this will return a 39 /// If we're running in the server-side Dart VM, this will return a
37 /// [LibraryMirror] that gives access to the `dart:io` library. 40 /// [LibraryMirror] that gives access to the `dart:io` library.
38 /// 41 ///
39 /// If `dart:io` is not available, this returns null. 42 /// If `dart:io` is not available, this returns null.
40 LibraryMirror get _io { 43 LibraryMirror get _io => currentMirrorSystem().libraries[Uri.parse('dart:io')];
41 try {
42 return currentMirrorSystem().libraries[Uri.parse('dart:io')];
43 } catch (_) {
44 return null;
45 }
46 }
47 44
48 // TODO(nweiz): when issue 6490 or 6943 are fixed, make this work under dart2js. 45 // TODO(nweiz): when issue 6490 or 6943 are fixed, make this work under dart2js.
49 /// If we're running in Dartium, this will return a [LibraryMirror] that gives 46 /// If we're running in Dartium, this will return a [LibraryMirror] that gives
50 /// access to the `dart:html` library. 47 /// access to the `dart:html` library.
51 /// 48 ///
52 /// If `dart:html` is not available, this returns null. 49 /// If `dart:html` is not available, this returns null.
53 LibraryMirror get _html { 50 LibraryMirror get _html =>
54 try { 51 currentMirrorSystem().libraries[Uri.parse('dart:html')];
55 return currentMirrorSystem().libraries[Uri.parse('dart:html')];
56 } catch (_) {
57 return null;
58 }
59 }
60 52
61 /// Gets the path to the current working directory. 53 /// Gets the path to the current working directory.
62 /// 54 ///
63 /// In the browser, this means the current URL. When using dart2js, this 55 /// In the browser, this means the current URL. When using dart2js, this
64 /// currently returns `.` due to technical constraints. In the future, it will 56 /// currently returns `.` due to technical constraints. In the future, it will
65 /// return the current URL. 57 /// return the current URL.
66 String get current { 58 String get current {
67 if (_io != null) { 59 if (_io != null) {
68 return _io.classes[const Symbol('Directory')] 60 return _io.classes[const Symbol('Directory')]
69 .getField(const Symbol('current')).reflectee.path; 61 .getField(const Symbol('current')).reflectee.path;
(...skipping 1061 matching lines...) Expand 10 before | Expand all | Expand 10 after
1131 // doesn't count. 1123 // doesn't count.
1132 if (lastDot <= 0) return [file, '']; 1124 if (lastDot <= 0) return [file, ''];
1133 1125
1134 return [file.substring(0, lastDot), file.substring(lastDot)]; 1126 return [file.substring(0, lastDot), file.substring(lastDot)];
1135 } 1127 }
1136 1128
1137 _ParsedPath clone() => new _ParsedPath( 1129 _ParsedPath clone() => new _ParsedPath(
1138 style, root, isRootRelative, 1130 style, root, isRootRelative,
1139 new List.from(parts), new List.from(separators)); 1131 new List.from(parts), new List.from(separators));
1140 } 1132 }
OLDNEW
« no previous file with comments | « no previous file | pkg/path/test/browser_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698