OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 part of dart.core; | |
6 | |
7 /** | |
8 * The Options object allows accessing the arguments which have been passed to | |
9 * the current isolate. | |
10 */ | |
11 abstract class Options { | |
12 /** | |
13 * A newly constructed Options object contains the arguments exactly as they | |
14 * have been passed to the isolate. | |
15 */ | |
16 factory Options() => new _OptionsImpl(); | |
17 | |
18 /** | |
19 * Returns a list of arguments that have been passed to this isolate. Any | |
20 * modifications to the list will be contained to the options object owning | |
21 * this list. | |
22 * | |
23 * If the execution environment does not support [arguments] an empty list | |
24 * is returned. | |
25 */ | |
26 List<String> get arguments; | |
27 | |
28 /** | |
29 * Returns the path of the executable used to run the script in this | |
30 * isolate. | |
31 * | |
32 * If the execution environment does not support [executable] an empty | |
33 * string is returned. | |
34 */ | |
35 String get executable; | |
36 | |
37 /** | |
38 * Returns the path of the script being run in this isolate. | |
39 * | |
40 * If the executable environment does not support [script] an empty | |
41 * string is returned. | |
42 */ | |
43 String get script; | |
44 } | |
45 | |
46 class _OptionsImpl implements Options { | |
47 List<String> get arguments { | |
48 if (_arguments == null) { | |
49 // On first access make a copy of the native arguments. | |
50 _arguments = _nativeArguments.getRange(0, _nativeArguments.length); | |
51 } | |
52 return _arguments; | |
53 } | |
54 | |
55 String get executable { | |
56 return _nativeExecutable; | |
57 } | |
58 | |
59 String get script { | |
60 return _nativeScript; | |
61 } | |
62 | |
63 List<String> _arguments = null; | |
64 | |
65 // This arguments singleton is written to by the embedder if applicable. | |
66 static List<String> _nativeArguments = const []; | |
67 | |
68 // This executable singleton is written to by the embedder if applicable. | |
69 static String _nativeExecutable = ''; | |
70 | |
71 // This script singleton is written to by the embedder if applicable. | |
72 static String _nativeScript = ''; | |
73 } | |
OLD | NEW |