mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 06:16:48 +00:00
Switch libraries to using new tags.
Review URL: https://codereview.chromium.org//11419032 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15499 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
parent
fe9de5c129
commit
abd2cf311a
|
@ -6,7 +6,7 @@
|
|||
|
||||
{
|
||||
'sources': [
|
||||
'../../sdk/lib/mirrors/mirrors.dart',
|
||||
'../../sdk/lib/mirrors/mirror_classes.dart',
|
||||
'mirrors.cc',
|
||||
'mirrors.h',
|
||||
'mirrors_impl.dart',
|
||||
|
|
|
@ -6,7 +6,7 @@ library dart_mirrors;
|
|||
|
||||
import 'dart:isolate';
|
||||
|
||||
part '../../../../mirrors/mirrors.dart';
|
||||
part '../../../../mirrors/mirror_classes.dart';
|
||||
|
||||
/**
|
||||
* Stub class for the mirror system.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_collection;
|
||||
|
||||
// TODO(ngeoffray): Rename to Lists.
|
||||
class Arrays {
|
||||
static void copy(List src, int srcStart,
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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 collection;
|
||||
library dart_collection;
|
||||
|
||||
part 'arrays.dart';
|
||||
part 'collections.dart';
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_collection;
|
||||
|
||||
/**
|
||||
* The [Collections] class implements static methods useful when
|
||||
* writing a class that implements [Collection] and the [iterator]
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_collection;
|
||||
|
||||
/*
|
||||
* Helper class which implements complex [Map] operations
|
||||
* in term of basic ones ([Map.keys], [Map.operator []],
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_collection;
|
||||
|
||||
/**
|
||||
* A node in a splay tree. It holds the key, the value and the left
|
||||
* and right children in the tree.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// Dart core library.
|
||||
part of dart_core;
|
||||
|
||||
class bool {
|
||||
factory bool._uninstantiable() {
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* The common interface of all collections.
|
||||
*
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// Dart core library.
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* The signature of a generic comparison function.
|
||||
|
|
|
@ -2,43 +2,43 @@
|
|||
// 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:core");
|
||||
library dart_core;
|
||||
|
||||
#import("dart:collection");
|
||||
import "dart:collection";
|
||||
|
||||
#source("bool.dart");
|
||||
#source("collection.dart");
|
||||
#source("comparable.dart");
|
||||
#source("date.dart");
|
||||
#source("double.dart");
|
||||
#source("duration.dart");
|
||||
#source("errors.dart");
|
||||
#source("exceptions.dart");
|
||||
#source("expando.dart");
|
||||
#source("expect.dart");
|
||||
#source("function.dart");
|
||||
#source("future.dart");
|
||||
#source("future_impl.dart");
|
||||
#source("hashable.dart");
|
||||
#source("identical.dart");
|
||||
#source("int.dart");
|
||||
#source("invocation_mirror.dart");
|
||||
#source("iterable.dart");
|
||||
#source("iterator.dart");
|
||||
#source("list.dart");
|
||||
#source("map.dart");
|
||||
#source("num.dart");
|
||||
#source("object.dart");
|
||||
#source("options.dart");
|
||||
#source("pattern.dart");
|
||||
#source("print.dart");
|
||||
#source("queue.dart");
|
||||
#source("regexp.dart");
|
||||
#source("sequences.dart");
|
||||
#source("set.dart");
|
||||
#source("sort.dart");
|
||||
#source("stopwatch.dart");
|
||||
#source("string.dart");
|
||||
#source("string_buffer.dart");
|
||||
#source("strings.dart");
|
||||
#source("type.dart");
|
||||
part "bool.dart";
|
||||
part "collection.dart";
|
||||
part "comparable.dart";
|
||||
part "date.dart";
|
||||
part "double.dart";
|
||||
part "duration.dart";
|
||||
part "errors.dart";
|
||||
part "exceptions.dart";
|
||||
part "expando.dart";
|
||||
part "expect.dart";
|
||||
part "function.dart";
|
||||
part "future.dart";
|
||||
part "future_impl.dart";
|
||||
part "hashable.dart";
|
||||
part "identical.dart";
|
||||
part "int.dart";
|
||||
part "invocation_mirror.dart";
|
||||
part "iterable.dart";
|
||||
part "iterator.dart";
|
||||
part "list.dart";
|
||||
part "map.dart";
|
||||
part "num.dart";
|
||||
part "object.dart";
|
||||
part "options.dart";
|
||||
part "pattern.dart";
|
||||
part "print.dart";
|
||||
part "queue.dart";
|
||||
part "regexp.dart";
|
||||
part "sequences.dart";
|
||||
part "set.dart";
|
||||
part "sort.dart";
|
||||
part "stopwatch.dart";
|
||||
part "string.dart";
|
||||
part "string_buffer.dart";
|
||||
part "strings.dart";
|
||||
part "type.dart";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// Dart core library.
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* Date is the public interface to a point in time.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
// TODO: Convert this abstract class into a concrete class double
|
||||
// that uses the patch class functionality to account for the
|
||||
// different platform implementations.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// Dart core library.
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* A [Duration] represents a time span. A duration can be negative.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
class Error {
|
||||
const Error();
|
||||
|
||||
|
@ -75,7 +77,7 @@ class ArgumentError implements Error {
|
|||
}
|
||||
|
||||
/**
|
||||
* Exception thrown because of an index outside of the valid range.
|
||||
* Error thrown because of an index outside of the valid range.
|
||||
*
|
||||
*/
|
||||
class RangeError extends ArgumentError {
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
// Exceptions are thrown either by the VM or from Dart code.
|
||||
|
||||
/**
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* An [Expando] allows adding new properties to objects.
|
||||
*/
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* Expect is used for tests that do not want to make use of the
|
||||
* Dart unit test library - for example, the core language tests.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// Dart core library.
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* Super-type of all function types.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* A [Future] is used to obtain a value sometime in the future. Receivers of a
|
||||
* [Future] can obtain the value by passing a callback to [then]. For example:
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// Copyright 2012 Google Inc. All Rights Reserved.
|
||||
// Dart core library.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
class _FutureImpl<T> implements Future<T> {
|
||||
|
||||
bool _isComplete = false;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// Dart core library.
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* Temporary interface for backwards compatibility.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* Check whether two references are to the same object.
|
||||
*/
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* Representation of Dart integers containing integer specific
|
||||
* operations and specialization of operations inherited from [num].
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* Representation of the invocation of a member on an object.
|
||||
*
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* The [Iterable] interface allows to get an [Iterator] out of an
|
||||
* [Iterable] object.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* The [Iterator] class provides methods to iterate over an object. It
|
||||
* is transparently used by the for-in construct to test for the end
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* A [List] is an indexable collection with a length. It can be of
|
||||
* fixed size or extendable.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* A [Map] is an associative container, mapping a key to a value.
|
||||
* Null values are supported, but null keys are not.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// Dart core library.
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* All numbers in dart are instances of [num].
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* Everything in Dart is an [Object].
|
||||
*/
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// Dart core library.
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* The Options object allows accessing the arguments which have been passed to
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
abstract class Pattern {
|
||||
Iterable<Match> allMatches(String str);
|
||||
}
|
||||
|
|
|
@ -2,4 +2,6 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
external void print(Object object);
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* A [Queue] is a collection that can be manipulated at both ends. One
|
||||
* can iterate over the elements of a queue through [forEach] or with
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* [Match] contains methods to manipulate a regular expression match.
|
||||
*
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* An indexed sequence of elements of the same type.
|
||||
*
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* This class is the public interface of a set. A set is a collection
|
||||
* without duplicates.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
// TODO(ajohnsen): Remove once dart2js intercepters can work without it.
|
||||
/**
|
||||
* WARNING: This method is temporary and will go away soon.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* A simple [Stopwatch] interface to measure elapsed time.
|
||||
*/
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* The String class represents character strings. Strings are
|
||||
* immutable. A string is represented by a list of 32-bit Unicode
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* The StringBuffer class is useful for concatenating strings
|
||||
* efficiently. Only on a call to [toString] are the strings
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
abstract class Strings {
|
||||
/**
|
||||
* Joins all the given strings to create a new string.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_core;
|
||||
|
||||
/**
|
||||
* Runtime representation of a type.
|
||||
*/
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
// 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:crypto');
|
||||
library dart_crypto;
|
||||
|
||||
#import('dart:math');
|
||||
import 'dart:math';
|
||||
|
||||
#source('crypto_utils.dart');
|
||||
#source('hash_utils.dart');
|
||||
#source('hmac.dart');
|
||||
#source('md5.dart');
|
||||
#source('sha1.dart');
|
||||
#source('sha256.dart');
|
||||
part 'crypto_utils.dart';
|
||||
part 'hash_utils.dart';
|
||||
part 'hmac.dart';
|
||||
part 'md5.dart';
|
||||
part 'sha1.dart';
|
||||
part 'sha256.dart';
|
||||
|
||||
/**
|
||||
* Interface for cryptographic hash functions.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_crypto;
|
||||
|
||||
class _LineWrappingStringBuffer {
|
||||
_LineWrappingStringBuffer(int this._lineLength) : _sb = new StringBuffer();
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_crypto;
|
||||
|
||||
// Constants.
|
||||
const _MASK_8 = 0xff;
|
||||
const _MASK_32 = 0xffffffff;
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_crypto;
|
||||
|
||||
class _HMAC implements HMAC {
|
||||
_HMAC(Hash this._hash, List<int> this._key) : _message = [];
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_crypto;
|
||||
|
||||
// The MD5 hasher is used to compute an MD5 message digest.
|
||||
class _MD5 extends _HashBase implements MD5 {
|
||||
_MD5() : super(16, 4, false) {
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_crypto;
|
||||
|
||||
// The SHA1 hasher is used to compute an SHA1 message digest.
|
||||
class _SHA1 extends _HashBase implements SHA1 {
|
||||
// Construct a SHA1 hasher object.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_crypto;
|
||||
|
||||
// The SHA256 hasher is used to compute an SHA256 message digest.
|
||||
class _SHA256 extends _HashBase implements SHA256 {
|
||||
// Construct a SHA256 hasher object.
|
||||
|
|
|
@ -5,22 +5,22 @@
|
|||
// Fake dart:html library for documentation.
|
||||
|
||||
/// The Dart HTML5 Library.
|
||||
#library("dart:html");
|
||||
library dart_html;
|
||||
|
||||
#source('interface/AbstractWorker.dartdoc');
|
||||
#source('interface/Element.dartdoc');
|
||||
#source('interface/Event.dartdoc');
|
||||
#source('interface/EventTarget.dartdoc');
|
||||
#source('interface/HttpRequest.dartdoc');
|
||||
#source('interface/MouseEvent.dartdoc');
|
||||
#source('interface/Storage.dartdoc');
|
||||
#source('interface/Node.dartdoc');
|
||||
#source('interface/UIEvent.dartdoc');
|
||||
#source('interface/WebSocket.dartdoc');
|
||||
part 'interface/AbstractWorker.dartdoc';
|
||||
part 'interface/Element.dartdoc';
|
||||
part 'interface/Event.dartdoc';
|
||||
part 'interface/EventTarget.dartdoc';
|
||||
part 'interface/HttpRequest.dartdoc';
|
||||
part 'interface/MouseEvent.dartdoc';
|
||||
part 'interface/Storage.dartdoc';
|
||||
part 'interface/Node.dartdoc';
|
||||
part 'interface/UIEvent.dartdoc';
|
||||
part 'interface/WebSocket.dartdoc';
|
||||
|
||||
// Implementation files that appear to be necessary to load the sources.
|
||||
|
||||
//#source('nodoc-src/SomeFile.dart');
|
||||
//part 'nodoc-src/SomeFile.dart';
|
||||
|
||||
// Global definitions.
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _Base64 {
|
||||
static const List<String> _encodingTable = const [
|
||||
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* Utility class that holds a number of byte buffers and can deliver
|
||||
* the bytes either one by one or in chunks.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _ChunkedInputStream implements ChunkedInputStream {
|
||||
_ChunkedInputStream(InputStream this._input, int this._chunkSize)
|
||||
: _bufferList = new _BufferList() {
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
// Constants used when working with native ports.
|
||||
const int _SUCCESS_RESPONSE = 0;
|
||||
const int _ILLEGAL_ARGUMENT_RESPONSE = 1;
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* [Directory] objects are used for working with directories.
|
||||
*/
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _Directory implements Directory {
|
||||
static const CREATE_REQUEST = 0;
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _EventHandler {
|
||||
external static void _start();
|
||||
external static _sendData(Object sender, ReceivePort receivePort, int data);
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* FileMode describes the modes in which a file can be opened.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _FileInputStream extends _BaseDataInputStream implements InputStream {
|
||||
_FileInputStream(String name)
|
||||
: _data = const [],
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* HTTP status codes.
|
||||
*/
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
// The close queue handles graceful closing of HTTP connections. When
|
||||
// a connection is added to the queue it will enter a wait state
|
||||
// waiting for all data written and possibly socket shutdown from
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
// Global constants.
|
||||
class _Const {
|
||||
// Bytes for "HTTP".
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
const String _DART_SESSION_ID = "DARTSESSID";
|
||||
|
||||
// A _HttpSession is a node in a double-linked list, with _next and _prev being
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _HttpUtils {
|
||||
static String decodeUrlEncodedString(String urlEncoded) {
|
||||
// First check the string for any encoding.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* Basic input stream which supplies binary data.
|
||||
*
|
||||
|
|
|
@ -10,46 +10,46 @@
|
|||
* This library allows you to work with files, directories,
|
||||
* sockets, processes, HTTP servers and clients, and more.
|
||||
*/
|
||||
#library('dart:io');
|
||||
library dart_io;
|
||||
|
||||
#import('dart:crypto');
|
||||
#import('dart:isolate');
|
||||
#import('dart:math');
|
||||
#import('dart:uri');
|
||||
#import('dart:utf');
|
||||
#import('dart:scalarlist');
|
||||
import 'dart:crypto';
|
||||
import 'dart:isolate';
|
||||
import 'dart:math';
|
||||
import 'dart:uri';
|
||||
import 'dart:utf';
|
||||
import 'dart:scalarlist';
|
||||
|
||||
#source('base64.dart');
|
||||
#source('buffer_list.dart');
|
||||
#source('chunked_stream.dart');
|
||||
#source('common.dart');
|
||||
#source('directory.dart');
|
||||
#source('directory_impl.dart');
|
||||
#source('eventhandler.dart');
|
||||
#source('file.dart');
|
||||
#source('file_impl.dart');
|
||||
#source('http.dart');
|
||||
#source('http_impl.dart');
|
||||
#source('http_parser.dart');
|
||||
#source('http_session.dart');
|
||||
#source('http_utils.dart');
|
||||
#source('input_stream.dart');
|
||||
#source('list_stream.dart');
|
||||
#source('list_stream_impl.dart');
|
||||
#source('mime_multipart_parser.dart');
|
||||
#source('output_stream.dart');
|
||||
#source('path.dart');
|
||||
#source('path_impl.dart');
|
||||
#source('platform.dart');
|
||||
#source('platform_impl.dart');
|
||||
#source('process.dart');
|
||||
#source('socket.dart');
|
||||
#source('socket_stream_impl.dart');
|
||||
#source('stdio.dart');
|
||||
#source('stream_util.dart');
|
||||
#source('string_stream.dart');
|
||||
#source('timer_impl.dart');
|
||||
#source('secure_socket.dart');
|
||||
#source('secure_server_socket.dart');
|
||||
#source('websocket.dart');
|
||||
#source('websocket_impl.dart');
|
||||
part 'base64.dart';
|
||||
part 'buffer_list.dart';
|
||||
part 'chunked_stream.dart';
|
||||
part 'common.dart';
|
||||
part 'directory.dart';
|
||||
part 'directory_impl.dart';
|
||||
part 'eventhandler.dart';
|
||||
part 'file.dart';
|
||||
part 'file_impl.dart';
|
||||
part 'http.dart';
|
||||
part 'http_impl.dart';
|
||||
part 'http_parser.dart';
|
||||
part 'http_session.dart';
|
||||
part 'http_utils.dart';
|
||||
part 'input_stream.dart';
|
||||
part 'list_stream.dart';
|
||||
part 'list_stream_impl.dart';
|
||||
part 'mime_multipart_parser.dart';
|
||||
part 'output_stream.dart';
|
||||
part 'path.dart';
|
||||
part 'path_impl.dart';
|
||||
part 'platform.dart';
|
||||
part 'platform_impl.dart';
|
||||
part 'process.dart';
|
||||
part 'socket.dart';
|
||||
part 'socket_stream_impl.dart';
|
||||
part 'stdio.dart';
|
||||
part 'stream_util.dart';
|
||||
part 'string_stream.dart';
|
||||
part 'timer_impl.dart';
|
||||
part 'secure_socket.dart';
|
||||
part 'secure_server_socket.dart';
|
||||
part 'websocket.dart';
|
||||
part 'websocket_impl.dart';
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* [ListInputStream] makes it possible to use the [InputStream]
|
||||
* interface to stream over data that is received in chunks as lists
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* Default implementation of [ListInputStream].
|
||||
*/
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* Parser for MIME multipart types of data as described in RFC 2046
|
||||
* section 5.1.1. The data to parse is supplied through the [:update:]
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* Output streams are used to write data sequentially to a data
|
||||
* destination e.g. a connected socket or an open file.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* A Path, which is a String interpreted as a sequence of path segments,
|
||||
* which are strings, separated by forward slashes.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _Path implements Path {
|
||||
final String _path;
|
||||
final bool isWindowsShare;
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* The [Platform] class exposes details of the machine and operating
|
||||
* system.
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _Platform {
|
||||
external static int _numberOfProcessors();
|
||||
external static String _pathSeparator();
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
// TODO(ager): The only reason for this class is that we
|
||||
// cannot patch a top-level at this point.
|
||||
class _ProcessUtils {
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
abstract class SecureServerSocket implements ServerSocket {
|
||||
/**
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* SecureSocket provides a secure (SSL or TLS) client connection to a server.
|
||||
* The certificate provided by the server is checked
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
abstract class ServerSocket {
|
||||
/**
|
||||
* Constructs a new server socket, binds it to a given address and port,
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _SocketInputStream implements InputStream {
|
||||
_SocketInputStream(Socket socket) : _socket = socket {
|
||||
if (_socket._closed) _closed = true;
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
const int _STDIO_HANDLE_TYPE_TERMINAL = 0;
|
||||
const int _STDIO_HANDLE_TYPE_PIPE = 1;
|
||||
const int _STDIO_HANDLE_TYPE_FILE = 2;
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
abstract class _BaseDataInputStream {
|
||||
int available();
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
// Interface for decoders decoding binary data into string data. The
|
||||
// decoder keeps track of line breaks during decoding.
|
||||
abstract class _StringDecoder {
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
class _Timer implements Timer {
|
||||
// Set jitter to wake up timer events that would happen in _TIMER_JITTER ms.
|
||||
static const int _TIMER_JITTER = 0;
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
/**
|
||||
* Web socket status codes used when closing a web socket connection.
|
||||
*/
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_io;
|
||||
|
||||
const String _webSocketGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
|
||||
|
||||
class _WebSocketMessageType {
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_isolate;
|
||||
|
||||
class IsolateSpawnException implements Exception {
|
||||
const IsolateSpawnException(String this._s);
|
||||
String toString() => "IsolateSpawnException: '$_s'";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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:isolate");
|
||||
library dart_isolate;
|
||||
|
||||
#source("base.dart");
|
||||
#source("timer.dart");
|
||||
part "base.dart";
|
||||
part "timer.dart";
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_isolate;
|
||||
|
||||
abstract class Timer {
|
||||
/**
|
||||
* Creates a new timer. The [callback] callback is invoked after
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
// 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:json");
|
||||
library dart_json;
|
||||
|
||||
#import('dart:math');
|
||||
import 'dart:math';
|
||||
|
||||
// JSON parsing and serialization.
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// A part of the dart:math library.
|
||||
part of dart_math;
|
||||
|
||||
/**
|
||||
* Base of the natural logarithms.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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:math");
|
||||
library dart_math;
|
||||
|
||||
#source("base.dart");
|
||||
#source("random.dart");
|
||||
part "base.dart";
|
||||
part "random.dart";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// 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.
|
||||
|
||||
// A part of the dart:math library.
|
||||
part of dart_math;
|
||||
|
||||
/**
|
||||
* A random number generator. The default implementation supplies a stream of
|
||||
|
|
744
sdk/lib/mirrors/mirror_classes.dart
Normal file
744
sdk/lib/mirrors/mirror_classes.dart
Normal file
|
@ -0,0 +1,744 @@
|
|||
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
||||
// 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.
|
||||
|
||||
// Commented out until supported by VM.
|
||||
// part of dart_mirrors;
|
||||
|
||||
// For the purposes of the mirrors library, we adopt a naming
|
||||
// convention with respect to getters and setters. Specifically, for
|
||||
// some variable or field...
|
||||
//
|
||||
// var myField;
|
||||
//
|
||||
// ...the getter is named 'myField' and the setter is named
|
||||
// 'myField='. This allows us to assign unique names to getters and
|
||||
// setters for the purposes of member lookup.
|
||||
|
||||
/**
|
||||
* A [MirrorSystem] is the main interface used to reflect on a set of
|
||||
* associated libraries.
|
||||
*
|
||||
* At runtime each running isolate has a distinct [MirrorSystem].
|
||||
*
|
||||
* It is also possible to have a [MirrorSystem] which represents a set
|
||||
* of libraries which are not running -- perhaps at compile-time. In
|
||||
* this case, all available reflective functionality would be
|
||||
* supported, but runtime functionality (such as invoking a function
|
||||
* or inspecting the contents of a variable) would fail dynamically.
|
||||
*/
|
||||
abstract class MirrorSystem {
|
||||
/**
|
||||
* An immutable map from from library names to mirrors for all
|
||||
* libraries known to this mirror system.
|
||||
*/
|
||||
Map<String, LibraryMirror> get libraries;
|
||||
|
||||
/**
|
||||
* A mirror on the isolate associated with this [MirrorSystem].
|
||||
* This may be null if this mirror system is not running.
|
||||
*/
|
||||
IsolateMirror get isolate;
|
||||
|
||||
/**
|
||||
* A mirror on the [:dynamic:] type.
|
||||
*/
|
||||
TypeMirror get dynamicType;
|
||||
|
||||
/**
|
||||
* A mirror on the [:void:] type.
|
||||
*/
|
||||
TypeMirror get voidType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a [MirrorSystem] for the current isolate.
|
||||
*/
|
||||
MirrorSystem currentMirrorSystem() {
|
||||
return _Mirrors.currentMirrorSystem();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a [MirrorSystem] for the isolate which is listening on
|
||||
* the [SendPort].
|
||||
*/
|
||||
Future<MirrorSystem> mirrorSystemOf(SendPort port) {
|
||||
return _Mirrors.mirrorSystemOf(port);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an [InstanceMirror] for some Dart language object.
|
||||
*
|
||||
* This only works if this mirror system is associated with the
|
||||
* current running isolate.
|
||||
*/
|
||||
InstanceMirror reflect(Object reflectee) {
|
||||
return _Mirrors.reflect(reflectee);
|
||||
}
|
||||
|
||||
/**
|
||||
* A [Mirror] reflects some Dart language entity.
|
||||
*
|
||||
* Every [Mirror] originates from some [MirrorSystem].
|
||||
*/
|
||||
abstract class Mirror {
|
||||
/**
|
||||
* The [MirrorSystem] that contains this mirror.
|
||||
*/
|
||||
MirrorSystem get mirrors;
|
||||
}
|
||||
|
||||
/**
|
||||
* An [IsolateMirror] reflects an isolate.
|
||||
*/
|
||||
abstract class IsolateMirror implements Mirror {
|
||||
/**
|
||||
* A unique name used to refer to an isolate in debugging messages.
|
||||
*/
|
||||
String get debugName;
|
||||
|
||||
/**
|
||||
* Does this mirror reflect the currently running isolate?
|
||||
*/
|
||||
bool get isCurrent;
|
||||
|
||||
/**
|
||||
* A mirror on the root library for this isolate.
|
||||
*/
|
||||
LibraryMirror get rootLibrary;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [DeclarationMirror] reflects some entity declared in a Dart program.
|
||||
*/
|
||||
abstract class DeclarationMirror implements Mirror {
|
||||
/**
|
||||
* The simple name for this Dart language entity.
|
||||
*
|
||||
* The simple name is in most cases the the identifier name of the
|
||||
* entity, such as 'method' for a method [:void method() {...}:] or
|
||||
* 'mylibrary' for a [:#library('mylibrary');:] declaration.
|
||||
*/
|
||||
String get simpleName;
|
||||
|
||||
/**
|
||||
* The fully-qualified name for this Dart language entity.
|
||||
*
|
||||
* This name is qualified by the name of the owner. For instance,
|
||||
* the qualified name of a method 'method' in class 'Class' in
|
||||
* library 'library' is 'library.Class.method'.
|
||||
*
|
||||
* TODO(turnidge): Specify whether this name is unique. Currently
|
||||
* this is a gray area due to lack of clarity over whether library
|
||||
* names are unique.
|
||||
*/
|
||||
String get qualifiedName;
|
||||
|
||||
/**
|
||||
* A mirror on the owner of this function. This is the declaration
|
||||
* immediately surrounding the reflectee.
|
||||
*
|
||||
* Note that for libraries, the owner will be [:null:].
|
||||
*/
|
||||
DeclarationMirror get owner;
|
||||
|
||||
/**
|
||||
* Is this declaration private?
|
||||
*
|
||||
* Note that for libraries, this will be [:false:].
|
||||
*/
|
||||
bool get isPrivate;
|
||||
|
||||
/**
|
||||
* Is this declaration top-level?
|
||||
*
|
||||
* This is defined to be equivalent to:
|
||||
* [:mirror.owner != null && mirror.owner is LibraryMirror:]
|
||||
*/
|
||||
bool get isTopLevel;
|
||||
|
||||
/**
|
||||
* The source location of this Dart language entity.
|
||||
*/
|
||||
SourceLocation get location;
|
||||
}
|
||||
|
||||
/**
|
||||
* An [ObjectMirror] is a common superinterface of [InstanceMirror],
|
||||
* [ClassMirror], and [LibraryMirror] that represents their shared
|
||||
* functionality.
|
||||
*
|
||||
* For the purposes of the mirrors library, these types are all
|
||||
* object-like, in that they support method invocation and field
|
||||
* access. Real Dart objects are represented by the [InstanceMirror]
|
||||
* type.
|
||||
*
|
||||
* See [InstanceMirror], [ClassMirror], and [LibraryMirror].
|
||||
*/
|
||||
abstract class ObjectMirror implements Mirror {
|
||||
/**
|
||||
* Invokes the named function and returns a mirror on the result.
|
||||
*
|
||||
* TODO(turnidge): Properly document.
|
||||
* TODO(turnidge): Handle ambiguous names.
|
||||
* TODO(turnidge): Handle optional & named arguments.
|
||||
*/
|
||||
Future<InstanceMirror> invoke(String memberName,
|
||||
List<Object> positionalArguments,
|
||||
[Map<String,Object> namedArguments]);
|
||||
|
||||
/**
|
||||
* Invokes a getter and returns a mirror on the result. The getter
|
||||
* can be the implicit getter for a field or a user-defined getter
|
||||
* method.
|
||||
*
|
||||
* TODO(turnidge): Handle ambiguous names.
|
||||
*/
|
||||
Future<InstanceMirror> getField(String fieldName);
|
||||
|
||||
/**
|
||||
* Invokes a setter and returns a mirror on the result. The setter
|
||||
* may be either the implicit setter for a non-final field or a
|
||||
* user-defined setter method.
|
||||
*
|
||||
* TODO(turnidge): Handle ambiguous names.
|
||||
*/
|
||||
Future<InstanceMirror> setField(String fieldName, Object value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An [InstanceMirror] reflects an instance of a Dart language object.
|
||||
*/
|
||||
abstract class InstanceMirror implements ObjectMirror {
|
||||
/**
|
||||
* A mirror on the type of the reflectee.
|
||||
*/
|
||||
ClassMirror get type;
|
||||
|
||||
/**
|
||||
* Does [reflectee] contain the instance reflected by this mirror?
|
||||
* This will always be true in the local case (reflecting instances
|
||||
* in the same isolate), but only true in the remote case if this
|
||||
* mirror reflects a simple value.
|
||||
*
|
||||
* A value is simple if one of the following holds:
|
||||
* - the value is null
|
||||
* - the value is of type [num]
|
||||
* - the value is of type [bool]
|
||||
* - the value is of type [String]
|
||||
*/
|
||||
bool get hasReflectee;
|
||||
|
||||
/**
|
||||
* If the [InstanceMirror] reflects an instance it is meaningful to
|
||||
* have a local reference to, we provide access to the actual
|
||||
* instance here.
|
||||
*
|
||||
* If you access [reflectee] when [hasReflectee] is false, an
|
||||
* exception is thrown.
|
||||
*/
|
||||
get reflectee;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [ClosureMirror] reflects a closure.
|
||||
*
|
||||
* A [ClosureMirror] provides access to its captured variables and
|
||||
* provides the ability to execute its reflectee.
|
||||
*/
|
||||
abstract class ClosureMirror implements InstanceMirror {
|
||||
/**
|
||||
* A mirror on the function associated with this closure.
|
||||
*/
|
||||
MethodMirror get function;
|
||||
|
||||
/**
|
||||
* The source code for this closure, if available. Otherwise null.
|
||||
*
|
||||
* TODO(turnidge): Would this just be available in function?
|
||||
*/
|
||||
String get source;
|
||||
|
||||
/**
|
||||
* Executes the closure. The arguments given in the descriptor need to
|
||||
* be InstanceMirrors or simple values.
|
||||
*
|
||||
* A value is simple if one of the following holds:
|
||||
* - the value is null
|
||||
* - the value is of type [num]
|
||||
* - the value is of type [bool]
|
||||
* - the value is of type [String]
|
||||
*/
|
||||
Future<InstanceMirror> apply(List<Object> positionalArguments,
|
||||
[Map<String,Object> namedArguments]);
|
||||
|
||||
/**
|
||||
* Looks up the value of a name in the scope of the closure. The
|
||||
* result is a mirror on that value.
|
||||
*/
|
||||
Future<InstanceMirror> findInContext(String name);
|
||||
}
|
||||
|
||||
/**
|
||||
* A [LibraryMirror] reflects a Dart language library, providing
|
||||
* access to the variables, functions, and classes of the
|
||||
* library.
|
||||
*/
|
||||
abstract class LibraryMirror implements DeclarationMirror, ObjectMirror {
|
||||
/**
|
||||
* The url of the library.
|
||||
*
|
||||
* TODO(turnidge): Document where this url comes from. Will this
|
||||
* value be sensible?
|
||||
*/
|
||||
String get url;
|
||||
|
||||
/**
|
||||
* An immutable map from from names to mirrors for all members in
|
||||
* this library.
|
||||
*
|
||||
* The members of a library are its top-level classes,
|
||||
* functions, variables, getters, and setters.
|
||||
*/
|
||||
Map<String, Mirror> get members;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all class
|
||||
* declarations in this library.
|
||||
*/
|
||||
Map<String, ClassMirror> get classes;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all function, getter,
|
||||
* and setter declarations in this library.
|
||||
*/
|
||||
Map<String, MethodMirror> get functions;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all getter
|
||||
* declarations in this library.
|
||||
*/
|
||||
Map<String, MethodMirror> get getters;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all setter
|
||||
* declarations in this library.
|
||||
*/
|
||||
Map<String, MethodMirror> get setters;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all variable
|
||||
* declarations in this library.
|
||||
*/
|
||||
Map<String, VariableMirror> get variables;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [TypeMirror] reflects a Dart language class, typedef
|
||||
* or type variable.
|
||||
*/
|
||||
abstract class TypeMirror implements DeclarationMirror {
|
||||
}
|
||||
|
||||
/**
|
||||
* A [ClassMirror] reflects a Dart language class.
|
||||
*/
|
||||
abstract class ClassMirror implements TypeMirror, ObjectMirror {
|
||||
/**
|
||||
* A mirror on the superclass on the reflectee.
|
||||
*
|
||||
* If this type is [:Object:] or a typedef, the superClass will be
|
||||
* null.
|
||||
*/
|
||||
ClassMirror get superclass;
|
||||
|
||||
/**
|
||||
* A list of mirrors on the superinterfaces of the reflectee.
|
||||
*/
|
||||
List<ClassMirror> get superinterfaces;
|
||||
|
||||
/**
|
||||
* An immutable map from from names to mirrors for all members of
|
||||
* this type.
|
||||
*
|
||||
* The members of a type are its methods, fields, getters, and
|
||||
* setters. Note that constructors and type variables are not
|
||||
* considered to be members of a type.
|
||||
*
|
||||
* This does not include inherited members.
|
||||
*/
|
||||
Map<String, Mirror> get members;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all method,
|
||||
* declarations for this type. This does not include getters and
|
||||
* setters.
|
||||
*/
|
||||
Map<String, MethodMirror> get methods;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all getter
|
||||
* declarations for this type.
|
||||
*/
|
||||
Map<String, MethodMirror> get getters;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all setter
|
||||
* declarations for this type.
|
||||
*/
|
||||
Map<String, MethodMirror> get setters;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all variable
|
||||
* declarations for this type.
|
||||
*/
|
||||
Map<String, VariableMirror> get variables;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all constructor
|
||||
* declarations for this type.
|
||||
*/
|
||||
Map<String, MethodMirror> get constructors;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all type variables for
|
||||
* this type.
|
||||
*
|
||||
* This map preserves the order of declaration of the type variables.
|
||||
*/
|
||||
Map<String, TypeVariableMirror> get typeVariables;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all type arguments for
|
||||
* this type.
|
||||
*
|
||||
* This map preserves the order of declaration of the type variables.
|
||||
*/
|
||||
Map<String, TypeMirror> get typeArguments;
|
||||
|
||||
/**
|
||||
* Is this the original declaration of this type?
|
||||
*
|
||||
* For most classes, they are their own original declaration. For
|
||||
* generic classes, however, there is a distinction between the
|
||||
* original class declaration, which has unbound type variables, and
|
||||
* the instantiations of generic classes, which have bound type
|
||||
* variables.
|
||||
*/
|
||||
bool get isOriginalDeclaration;
|
||||
|
||||
/**
|
||||
* A mirror on the original declaration of this type.
|
||||
*
|
||||
* For most classes, they are their own original declaration. For
|
||||
* generic classes, however, there is a distinction between the
|
||||
* original class declaration, which has unbound type variables, and
|
||||
* the instantiations of generic classes, which have bound type
|
||||
* variables.
|
||||
*/
|
||||
ClassMirror get originalDeclaration;
|
||||
|
||||
/**
|
||||
* Invokes the named constructor and returns a mirror on the result.
|
||||
*
|
||||
* TODO(turnidge): Properly document.
|
||||
*/
|
||||
Future<InstanceMirror> newInstance(String constructorName,
|
||||
List<Object> positionalArguments,
|
||||
[Map<String,Object> namedArguments]);
|
||||
|
||||
/**
|
||||
* Does this mirror represent a class?
|
||||
*
|
||||
* TODO(turnidge): This functions goes away after the
|
||||
* class/interface changes.
|
||||
*/
|
||||
bool get isClass;
|
||||
|
||||
/**
|
||||
* A mirror on the default factory class or null if there is none.
|
||||
*
|
||||
* TODO(turnidge): This functions goes away after the
|
||||
* class/interface changes.
|
||||
*/
|
||||
ClassMirror get defaultFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [FunctionTypeMirror] represents the type of a function in the
|
||||
* Dart language.
|
||||
*/
|
||||
abstract class FunctionTypeMirror implements ClassMirror {
|
||||
/**
|
||||
* The return type of the reflectee.
|
||||
*/
|
||||
TypeMirror get returnType;
|
||||
|
||||
/**
|
||||
* A list of the parameter types of the reflectee.
|
||||
*/
|
||||
List<ParameterMirror> get parameters;
|
||||
|
||||
/**
|
||||
* A mirror on the [:call:] method for the reflectee.
|
||||
*
|
||||
* TODO(turnidge): What is this and what is it for?
|
||||
*/
|
||||
MethodMirror get callMethod;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [TypeVariableMirror] represents a type parameter of a generic
|
||||
* type.
|
||||
*/
|
||||
abstract class TypeVariableMirror extends TypeMirror {
|
||||
/**
|
||||
* A mirror on the type that is the upper bound of this type variable.
|
||||
*/
|
||||
TypeMirror get upperBound;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [TypedefMirror] represents a typedef in a Dart language program.
|
||||
*/
|
||||
abstract class TypedefMirror implements ClassMirror {
|
||||
/**
|
||||
* The defining type for this typedef.
|
||||
*
|
||||
* For instance [:void f(int):] is the value for [:typedef void f(int):].
|
||||
*/
|
||||
TypeMirror get value;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [MethodMirror] reflects a Dart language function, method,
|
||||
* constructor, getter, or setter.
|
||||
*/
|
||||
abstract class MethodMirror implements DeclarationMirror {
|
||||
/**
|
||||
* A mirror on the return type for the reflectee.
|
||||
*/
|
||||
TypeMirror get returnType;
|
||||
|
||||
/**
|
||||
* A list of mirrors on the parameters for the reflectee.
|
||||
*/
|
||||
List<ParameterMirror> get parameters;
|
||||
|
||||
/**
|
||||
* Is the reflectee static?
|
||||
*
|
||||
* For the purposes of the mirrors library, a top-level function is
|
||||
* considered static.
|
||||
*/
|
||||
bool get isStatic;
|
||||
|
||||
/**
|
||||
* Is the reflectee abstract?
|
||||
*/
|
||||
bool get isAbstract;
|
||||
|
||||
/**
|
||||
* Is the reflectee a regular function or method?
|
||||
*
|
||||
* A function or method is regular if it is not a getter, setter, or
|
||||
* constructor. Note that operators, by this definition, are
|
||||
* regular methods.
|
||||
*/
|
||||
bool get isRegularMethod;
|
||||
|
||||
/**
|
||||
* Is the reflectee an operator?
|
||||
*/
|
||||
bool get isOperator;
|
||||
|
||||
/**
|
||||
* Is the reflectee a getter?
|
||||
*/
|
||||
bool get isGetter;
|
||||
|
||||
/**
|
||||
* Is the reflectee a setter?
|
||||
*/
|
||||
bool get isSetter;
|
||||
|
||||
/**
|
||||
* Is the reflectee a constructor?
|
||||
*/
|
||||
bool get isConstructor;
|
||||
|
||||
/**
|
||||
* The constructor name for named constructors and factory methods.
|
||||
*
|
||||
* For unnamed constructors, this is the empty string. For
|
||||
* non-constructors, this is the empty string.
|
||||
*
|
||||
* For example, [:'bar':] is the constructor name for constructor
|
||||
* [:Foo.bar:] of type [:Foo:].
|
||||
*/
|
||||
String get constructorName;
|
||||
|
||||
/**
|
||||
* Is the reflectee a const constructor?
|
||||
*/
|
||||
bool get isConstConstructor;
|
||||
|
||||
/**
|
||||
* Is the reflectee a generative constructor?
|
||||
*/
|
||||
bool get isGenerativeConstructor;
|
||||
|
||||
/**
|
||||
* Is the reflectee a redirecting constructor?
|
||||
*/
|
||||
bool get isRedirectingConstructor;
|
||||
|
||||
/**
|
||||
* Is the reflectee a factory constructor?
|
||||
*/
|
||||
bool get isFactoryConstructor;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [VariableMirror] reflects a Dart language variable declaration.
|
||||
*/
|
||||
abstract class VariableMirror implements DeclarationMirror {
|
||||
/**
|
||||
* A mirror on the type of the reflectee.
|
||||
*/
|
||||
TypeMirror get type;
|
||||
|
||||
/**
|
||||
* Is the reflectee a static variable?
|
||||
*
|
||||
* For the purposes of the mirror library, top-level variables are
|
||||
* implicitly declared static.
|
||||
*/
|
||||
bool get isStatic;
|
||||
|
||||
/**
|
||||
* Is the reflectee a final variable?
|
||||
*/
|
||||
bool get isFinal;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [ParameterMirror] reflects a Dart formal parameter declaration.
|
||||
*/
|
||||
abstract class ParameterMirror implements VariableMirror {
|
||||
/**
|
||||
* A mirror on the type of this parameter.
|
||||
*/
|
||||
TypeMirror get type;
|
||||
|
||||
/**
|
||||
* Is this parameter optional?
|
||||
*/
|
||||
bool get isOptional;
|
||||
|
||||
/**
|
||||
* Is this parameter named?
|
||||
*/
|
||||
bool get isNamed;
|
||||
|
||||
/**
|
||||
* Does this parameter have a default value?
|
||||
*/
|
||||
bool get hasDefaultValue;
|
||||
|
||||
/**
|
||||
* A mirror on the default value for this parameter, if it exists.
|
||||
*
|
||||
* TODO(turnidge): String may not be a good representation of this
|
||||
* at runtime.
|
||||
*/
|
||||
String get defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [SourceLocation] describes the span of an entity in Dart source code.
|
||||
*/
|
||||
abstract class SourceLocation {
|
||||
}
|
||||
|
||||
/**
|
||||
* When an error occurs during the mirrored execution of code, a
|
||||
* [MirroredError] is thrown.
|
||||
*
|
||||
* In general, there are three main classes of failure that can happen
|
||||
* during mirrored execution of code in some isolate:
|
||||
*
|
||||
* - An exception is thrown but not caught. This is caught by the
|
||||
* mirrors framework and a [MirroredUncaughtExceptionError] is
|
||||
* created and thrown.
|
||||
*
|
||||
* - A compile-time error occurs, such as a syntax error. This is
|
||||
* suppressed by the mirrors framework and a
|
||||
* [MirroredCompilationError] is created and thrown.
|
||||
*
|
||||
* - A truly fatal error occurs, causing the isolate to be exited. If
|
||||
* the reflector and reflectee share the same isolate, then they
|
||||
* will both suffer. If the reflector and reflectee are in distinct
|
||||
* isolates, then we hope to provide some information about the
|
||||
* isolate death, but this has yet to be implemented.
|
||||
*
|
||||
* TODO(turnidge): Specify the behavior for remote fatal errors.
|
||||
*/
|
||||
abstract class MirroredError implements Exception {
|
||||
}
|
||||
|
||||
/**
|
||||
* When an uncaught exception occurs during the mirrored execution
|
||||
* of code, a [MirroredUncaughtExceptionError] is thrown.
|
||||
*
|
||||
* This exception contains a mirror on the original exception object.
|
||||
* It also contains an object which can be used to recover the
|
||||
* stacktrace.
|
||||
*/
|
||||
class MirroredUncaughtExceptionError extends MirroredError {
|
||||
MirroredUncaughtExceptionError(this.exception_mirror,
|
||||
this.exception_string,
|
||||
this.stacktrace) {}
|
||||
|
||||
/** A mirror on the exception object. */
|
||||
final InstanceMirror exception_mirror;
|
||||
|
||||
/** The result of toString() for the exception object. */
|
||||
final String exception_string;
|
||||
|
||||
/** A stacktrace object for the uncaught exception. */
|
||||
final Object stacktrace;
|
||||
|
||||
String toString() {
|
||||
return
|
||||
"Uncaught exception during mirrored execution: <${exception_string}>";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* When a compile-time error occurs during the mirrored execution
|
||||
* of code, a [MirroredCompilationError] is thrown.
|
||||
*
|
||||
* This exception includes the compile-time error message that would
|
||||
* have been displayed to the user, if the function had not been
|
||||
* invoked via mirror.
|
||||
*/
|
||||
class MirroredCompilationError extends MirroredError {
|
||||
MirroredCompilationError(this.message) {}
|
||||
|
||||
final String message;
|
||||
|
||||
String toString() {
|
||||
return "Compile-time error during mirrored execution: <$message>";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A [MirrorException] is used to indicate errors within the mirrors
|
||||
* framework.
|
||||
*/
|
||||
class MirrorException implements Exception {
|
||||
const MirrorException(String this._message);
|
||||
String toString() => "MirrorException: '$_message'";
|
||||
final String _message;
|
||||
}
|
|
@ -3,743 +3,7 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// The dart:mirrors library provides reflective access for Dart program.
|
||||
//
|
||||
// For the purposes of the mirrors library, we adopt a naming
|
||||
// convention with respect to getters and setters. Specifically, for
|
||||
// some variable or field...
|
||||
//
|
||||
// var myField;
|
||||
//
|
||||
// ...the getter is named 'myField' and the setter is named
|
||||
// 'myField='. This allows us to assign unique names to getters and
|
||||
// setters for the purposes of member lookup.
|
||||
|
||||
// #library("mirrors");
|
||||
library dart_mirrors;
|
||||
|
||||
/**
|
||||
* A [MirrorSystem] is the main interface used to reflect on a set of
|
||||
* associated libraries.
|
||||
*
|
||||
* At runtime each running isolate has a distinct [MirrorSystem].
|
||||
*
|
||||
* It is also possible to have a [MirrorSystem] which represents a set
|
||||
* of libraries which are not running -- perhaps at compile-time. In
|
||||
* this case, all available reflective functionality would be
|
||||
* supported, but runtime functionality (such as invoking a function
|
||||
* or inspecting the contents of a variable) would fail dynamically.
|
||||
*/
|
||||
abstract class MirrorSystem {
|
||||
/**
|
||||
* An immutable map from from library names to mirrors for all
|
||||
* libraries known to this mirror system.
|
||||
*/
|
||||
Map<String, LibraryMirror> get libraries;
|
||||
|
||||
/**
|
||||
* A mirror on the isolate associated with this [MirrorSystem].
|
||||
* This may be null if this mirror system is not running.
|
||||
*/
|
||||
IsolateMirror get isolate;
|
||||
|
||||
/**
|
||||
* A mirror on the [:dynamic:] type.
|
||||
*/
|
||||
TypeMirror get dynamicType;
|
||||
|
||||
/**
|
||||
* A mirror on the [:void:] type.
|
||||
*/
|
||||
TypeMirror get voidType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a [MirrorSystem] for the current isolate.
|
||||
*/
|
||||
MirrorSystem currentMirrorSystem() {
|
||||
return _Mirrors.currentMirrorSystem();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a [MirrorSystem] for the isolate which is listening on
|
||||
* the [SendPort].
|
||||
*/
|
||||
Future<MirrorSystem> mirrorSystemOf(SendPort port) {
|
||||
return _Mirrors.mirrorSystemOf(port);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an [InstanceMirror] for some Dart language object.
|
||||
*
|
||||
* This only works if this mirror system is associated with the
|
||||
* current running isolate.
|
||||
*/
|
||||
InstanceMirror reflect(Object reflectee) {
|
||||
return _Mirrors.reflect(reflectee);
|
||||
}
|
||||
|
||||
/**
|
||||
* A [Mirror] reflects some Dart language entity.
|
||||
*
|
||||
* Every [Mirror] originates from some [MirrorSystem].
|
||||
*/
|
||||
abstract class Mirror {
|
||||
/**
|
||||
* The [MirrorSystem] that contains this mirror.
|
||||
*/
|
||||
MirrorSystem get mirrors;
|
||||
}
|
||||
|
||||
/**
|
||||
* An [IsolateMirror] reflects an isolate.
|
||||
*/
|
||||
abstract class IsolateMirror implements Mirror {
|
||||
/**
|
||||
* A unique name used to refer to an isolate in debugging messages.
|
||||
*/
|
||||
String get debugName;
|
||||
|
||||
/**
|
||||
* Does this mirror reflect the currently running isolate?
|
||||
*/
|
||||
bool get isCurrent;
|
||||
|
||||
/**
|
||||
* A mirror on the root library for this isolate.
|
||||
*/
|
||||
LibraryMirror get rootLibrary;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [DeclarationMirror] reflects some entity declared in a Dart program.
|
||||
*/
|
||||
abstract class DeclarationMirror implements Mirror {
|
||||
/**
|
||||
* The simple name for this Dart language entity.
|
||||
*
|
||||
* The simple name is in most cases the the identifier name of the
|
||||
* entity, such as 'method' for a method [:void method() {...}:] or
|
||||
* 'mylibrary' for a [:#library('mylibrary');:] declaration.
|
||||
*/
|
||||
String get simpleName;
|
||||
|
||||
/**
|
||||
* The fully-qualified name for this Dart language entity.
|
||||
*
|
||||
* This name is qualified by the name of the owner. For instance,
|
||||
* the qualified name of a method 'method' in class 'Class' in
|
||||
* library 'library' is 'library.Class.method'.
|
||||
*
|
||||
* TODO(turnidge): Specify whether this name is unique. Currently
|
||||
* this is a gray area due to lack of clarity over whether library
|
||||
* names are unique.
|
||||
*/
|
||||
String get qualifiedName;
|
||||
|
||||
/**
|
||||
* A mirror on the owner of this function. This is the declaration
|
||||
* immediately surrounding the reflectee.
|
||||
*
|
||||
* Note that for libraries, the owner will be [:null:].
|
||||
*/
|
||||
DeclarationMirror get owner;
|
||||
|
||||
/**
|
||||
* Is this declaration private?
|
||||
*
|
||||
* Note that for libraries, this will be [:false:].
|
||||
*/
|
||||
bool get isPrivate;
|
||||
|
||||
/**
|
||||
* Is this declaration top-level?
|
||||
*
|
||||
* This is defined to be equivalent to:
|
||||
* [:mirror.owner != null && mirror.owner is LibraryMirror:]
|
||||
*/
|
||||
bool get isTopLevel;
|
||||
|
||||
/**
|
||||
* The source location of this Dart language entity.
|
||||
*/
|
||||
SourceLocation get location;
|
||||
}
|
||||
|
||||
/**
|
||||
* An [ObjectMirror] is a common superinterface of [InstanceMirror],
|
||||
* [ClassMirror], and [LibraryMirror] that represents their shared
|
||||
* functionality.
|
||||
*
|
||||
* For the purposes of the mirrors library, these types are all
|
||||
* object-like, in that they support method invocation and field
|
||||
* access. Real Dart objects are represented by the [InstanceMirror]
|
||||
* type.
|
||||
*
|
||||
* See [InstanceMirror], [ClassMirror], and [LibraryMirror].
|
||||
*/
|
||||
abstract class ObjectMirror implements Mirror {
|
||||
/**
|
||||
* Invokes the named function and returns a mirror on the result.
|
||||
*
|
||||
* TODO(turnidge): Properly document.
|
||||
* TODO(turnidge): Handle ambiguous names.
|
||||
* TODO(turnidge): Handle optional & named arguments.
|
||||
*/
|
||||
Future<InstanceMirror> invoke(String memberName,
|
||||
List<Object> positionalArguments,
|
||||
[Map<String,Object> namedArguments]);
|
||||
|
||||
/**
|
||||
* Invokes a getter and returns a mirror on the result. The getter
|
||||
* can be the implicit getter for a field or a user-defined getter
|
||||
* method.
|
||||
*
|
||||
* TODO(turnidge): Handle ambiguous names.
|
||||
*/
|
||||
Future<InstanceMirror> getField(String fieldName);
|
||||
|
||||
/**
|
||||
* Invokes a setter and returns a mirror on the result. The setter
|
||||
* may be either the implicit setter for a non-final field or a
|
||||
* user-defined setter method.
|
||||
*
|
||||
* TODO(turnidge): Handle ambiguous names.
|
||||
*/
|
||||
Future<InstanceMirror> setField(String fieldName, Object value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An [InstanceMirror] reflects an instance of a Dart language object.
|
||||
*/
|
||||
abstract class InstanceMirror implements ObjectMirror {
|
||||
/**
|
||||
* A mirror on the type of the reflectee.
|
||||
*/
|
||||
ClassMirror get type;
|
||||
|
||||
/**
|
||||
* Does [reflectee] contain the instance reflected by this mirror?
|
||||
* This will always be true in the local case (reflecting instances
|
||||
* in the same isolate), but only true in the remote case if this
|
||||
* mirror reflects a simple value.
|
||||
*
|
||||
* A value is simple if one of the following holds:
|
||||
* - the value is null
|
||||
* - the value is of type [num]
|
||||
* - the value is of type [bool]
|
||||
* - the value is of type [String]
|
||||
*/
|
||||
bool get hasReflectee;
|
||||
|
||||
/**
|
||||
* If the [InstanceMirror] reflects an instance it is meaningful to
|
||||
* have a local reference to, we provide access to the actual
|
||||
* instance here.
|
||||
*
|
||||
* If you access [reflectee] when [hasReflectee] is false, an
|
||||
* exception is thrown.
|
||||
*/
|
||||
get reflectee;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [ClosureMirror] reflects a closure.
|
||||
*
|
||||
* A [ClosureMirror] provides access to its captured variables and
|
||||
* provides the ability to execute its reflectee.
|
||||
*/
|
||||
abstract class ClosureMirror implements InstanceMirror {
|
||||
/**
|
||||
* A mirror on the function associated with this closure.
|
||||
*/
|
||||
MethodMirror get function;
|
||||
|
||||
/**
|
||||
* The source code for this closure, if available. Otherwise null.
|
||||
*
|
||||
* TODO(turnidge): Would this just be available in function?
|
||||
*/
|
||||
String get source;
|
||||
|
||||
/**
|
||||
* Executes the closure. The arguments given in the descriptor need to
|
||||
* be InstanceMirrors or simple values.
|
||||
*
|
||||
* A value is simple if one of the following holds:
|
||||
* - the value is null
|
||||
* - the value is of type [num]
|
||||
* - the value is of type [bool]
|
||||
* - the value is of type [String]
|
||||
*/
|
||||
Future<InstanceMirror> apply(List<Object> positionalArguments,
|
||||
[Map<String,Object> namedArguments]);
|
||||
|
||||
/**
|
||||
* Looks up the value of a name in the scope of the closure. The
|
||||
* result is a mirror on that value.
|
||||
*/
|
||||
Future<InstanceMirror> findInContext(String name);
|
||||
}
|
||||
|
||||
/**
|
||||
* A [LibraryMirror] reflects a Dart language library, providing
|
||||
* access to the variables, functions, and classes of the
|
||||
* library.
|
||||
*/
|
||||
abstract class LibraryMirror implements DeclarationMirror, ObjectMirror {
|
||||
/**
|
||||
* The url of the library.
|
||||
*
|
||||
* TODO(turnidge): Document where this url comes from. Will this
|
||||
* value be sensible?
|
||||
*/
|
||||
String get url;
|
||||
|
||||
/**
|
||||
* An immutable map from from names to mirrors for all members in
|
||||
* this library.
|
||||
*
|
||||
* The members of a library are its top-level classes,
|
||||
* functions, variables, getters, and setters.
|
||||
*/
|
||||
Map<String, Mirror> get members;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all class
|
||||
* declarations in this library.
|
||||
*/
|
||||
Map<String, ClassMirror> get classes;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all function, getter,
|
||||
* and setter declarations in this library.
|
||||
*/
|
||||
Map<String, MethodMirror> get functions;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all getter
|
||||
* declarations in this library.
|
||||
*/
|
||||
Map<String, MethodMirror> get getters;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all setter
|
||||
* declarations in this library.
|
||||
*/
|
||||
Map<String, MethodMirror> get setters;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all variable
|
||||
* declarations in this library.
|
||||
*/
|
||||
Map<String, VariableMirror> get variables;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [TypeMirror] reflects a Dart language class, typedef
|
||||
* or type variable.
|
||||
*/
|
||||
abstract class TypeMirror implements DeclarationMirror {
|
||||
}
|
||||
|
||||
/**
|
||||
* A [ClassMirror] reflects a Dart language class.
|
||||
*/
|
||||
abstract class ClassMirror implements TypeMirror, ObjectMirror {
|
||||
/**
|
||||
* A mirror on the superclass on the reflectee.
|
||||
*
|
||||
* If this type is [:Object:] or a typedef, the superClass will be
|
||||
* null.
|
||||
*/
|
||||
ClassMirror get superclass;
|
||||
|
||||
/**
|
||||
* A list of mirrors on the superinterfaces of the reflectee.
|
||||
*/
|
||||
List<ClassMirror> get superinterfaces;
|
||||
|
||||
/**
|
||||
* An immutable map from from names to mirrors for all members of
|
||||
* this type.
|
||||
*
|
||||
* The members of a type are its methods, fields, getters, and
|
||||
* setters. Note that constructors and type variables are not
|
||||
* considered to be members of a type.
|
||||
*
|
||||
* This does not include inherited members.
|
||||
*/
|
||||
Map<String, Mirror> get members;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all method,
|
||||
* declarations for this type. This does not include getters and
|
||||
* setters.
|
||||
*/
|
||||
Map<String, MethodMirror> get methods;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all getter
|
||||
* declarations for this type.
|
||||
*/
|
||||
Map<String, MethodMirror> get getters;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all setter
|
||||
* declarations for this type.
|
||||
*/
|
||||
Map<String, MethodMirror> get setters;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all variable
|
||||
* declarations for this type.
|
||||
*/
|
||||
Map<String, VariableMirror> get variables;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all constructor
|
||||
* declarations for this type.
|
||||
*/
|
||||
Map<String, MethodMirror> get constructors;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all type variables for
|
||||
* this type.
|
||||
*
|
||||
* This map preserves the order of declaration of the type variables.
|
||||
*/
|
||||
Map<String, TypeVariableMirror> get typeVariables;
|
||||
|
||||
/**
|
||||
* An immutable map from names to mirrors for all type arguments for
|
||||
* this type.
|
||||
*
|
||||
* This map preserves the order of declaration of the type variables.
|
||||
*/
|
||||
Map<String, TypeMirror> get typeArguments;
|
||||
|
||||
/**
|
||||
* Is this the original declaration of this type?
|
||||
*
|
||||
* For most classes, they are their own original declaration. For
|
||||
* generic classes, however, there is a distinction between the
|
||||
* original class declaration, which has unbound type variables, and
|
||||
* the instantiations of generic classes, which have bound type
|
||||
* variables.
|
||||
*/
|
||||
bool get isOriginalDeclaration;
|
||||
|
||||
/**
|
||||
* A mirror on the original declaration of this type.
|
||||
*
|
||||
* For most classes, they are their own original declaration. For
|
||||
* generic classes, however, there is a distinction between the
|
||||
* original class declaration, which has unbound type variables, and
|
||||
* the instantiations of generic classes, which have bound type
|
||||
* variables.
|
||||
*/
|
||||
ClassMirror get originalDeclaration;
|
||||
|
||||
/**
|
||||
* Invokes the named constructor and returns a mirror on the result.
|
||||
*
|
||||
* TODO(turnidge): Properly document.
|
||||
*/
|
||||
Future<InstanceMirror> newInstance(String constructorName,
|
||||
List<Object> positionalArguments,
|
||||
[Map<String,Object> namedArguments]);
|
||||
|
||||
/**
|
||||
* Does this mirror represent a class?
|
||||
*
|
||||
* TODO(turnidge): This functions goes away after the
|
||||
* class/interface changes.
|
||||
*/
|
||||
bool get isClass;
|
||||
|
||||
/**
|
||||
* A mirror on the default factory class or null if there is none.
|
||||
*
|
||||
* TODO(turnidge): This functions goes away after the
|
||||
* class/interface changes.
|
||||
*/
|
||||
ClassMirror get defaultFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [FunctionTypeMirror] represents the type of a function in the
|
||||
* Dart language.
|
||||
*/
|
||||
abstract class FunctionTypeMirror implements ClassMirror {
|
||||
/**
|
||||
* The return type of the reflectee.
|
||||
*/
|
||||
TypeMirror get returnType;
|
||||
|
||||
/**
|
||||
* A list of the parameter types of the reflectee.
|
||||
*/
|
||||
List<ParameterMirror> get parameters;
|
||||
|
||||
/**
|
||||
* A mirror on the [:call:] method for the reflectee.
|
||||
*
|
||||
* TODO(turnidge): What is this and what is it for?
|
||||
*/
|
||||
MethodMirror get callMethod;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [TypeVariableMirror] represents a type parameter of a generic
|
||||
* type.
|
||||
*/
|
||||
abstract class TypeVariableMirror extends TypeMirror {
|
||||
/**
|
||||
* A mirror on the type that is the upper bound of this type variable.
|
||||
*/
|
||||
TypeMirror get upperBound;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [TypedefMirror] represents a typedef in a Dart language program.
|
||||
*/
|
||||
abstract class TypedefMirror implements ClassMirror {
|
||||
/**
|
||||
* The defining type for this typedef.
|
||||
*
|
||||
* For instance [:void f(int):] is the value for [:typedef void f(int):].
|
||||
*/
|
||||
TypeMirror get value;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [MethodMirror] reflects a Dart language function, method,
|
||||
* constructor, getter, or setter.
|
||||
*/
|
||||
abstract class MethodMirror implements DeclarationMirror {
|
||||
/**
|
||||
* A mirror on the return type for the reflectee.
|
||||
*/
|
||||
TypeMirror get returnType;
|
||||
|
||||
/**
|
||||
* A list of mirrors on the parameters for the reflectee.
|
||||
*/
|
||||
List<ParameterMirror> get parameters;
|
||||
|
||||
/**
|
||||
* Is the reflectee static?
|
||||
*
|
||||
* For the purposes of the mirrors library, a top-level function is
|
||||
* considered static.
|
||||
*/
|
||||
bool get isStatic;
|
||||
|
||||
/**
|
||||
* Is the reflectee abstract?
|
||||
*/
|
||||
bool get isAbstract;
|
||||
|
||||
/**
|
||||
* Is the reflectee a regular function or method?
|
||||
*
|
||||
* A function or method is regular if it is not a getter, setter, or
|
||||
* constructor. Note that operators, by this definition, are
|
||||
* regular methods.
|
||||
*/
|
||||
bool get isRegularMethod;
|
||||
|
||||
/**
|
||||
* Is the reflectee an operator?
|
||||
*/
|
||||
bool get isOperator;
|
||||
|
||||
/**
|
||||
* Is the reflectee a getter?
|
||||
*/
|
||||
bool get isGetter;
|
||||
|
||||
/**
|
||||
* Is the reflectee a setter?
|
||||
*/
|
||||
bool get isSetter;
|
||||
|
||||
/**
|
||||
* Is the reflectee a constructor?
|
||||
*/
|
||||
bool get isConstructor;
|
||||
|
||||
/**
|
||||
* The constructor name for named constructors and factory methods.
|
||||
*
|
||||
* For unnamed constructors, this is the empty string. For
|
||||
* non-constructors, this is the empty string.
|
||||
*
|
||||
* For example, [:'bar':] is the constructor name for constructor
|
||||
* [:Foo.bar:] of type [:Foo:].
|
||||
*/
|
||||
String get constructorName;
|
||||
|
||||
/**
|
||||
* Is the reflectee a const constructor?
|
||||
*/
|
||||
bool get isConstConstructor;
|
||||
|
||||
/**
|
||||
* Is the reflectee a generative constructor?
|
||||
*/
|
||||
bool get isGenerativeConstructor;
|
||||
|
||||
/**
|
||||
* Is the reflectee a redirecting constructor?
|
||||
*/
|
||||
bool get isRedirectingConstructor;
|
||||
|
||||
/**
|
||||
* Is the reflectee a factory constructor?
|
||||
*/
|
||||
bool get isFactoryConstructor;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [VariableMirror] reflects a Dart language variable declaration.
|
||||
*/
|
||||
abstract class VariableMirror implements DeclarationMirror {
|
||||
/**
|
||||
* A mirror on the type of the reflectee.
|
||||
*/
|
||||
TypeMirror get type;
|
||||
|
||||
/**
|
||||
* Is the reflectee a static variable?
|
||||
*
|
||||
* For the purposes of the mirror library, top-level variables are
|
||||
* implicitly declared static.
|
||||
*/
|
||||
bool get isStatic;
|
||||
|
||||
/**
|
||||
* Is the reflectee a final variable?
|
||||
*/
|
||||
bool get isFinal;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [ParameterMirror] reflects a Dart formal parameter declaration.
|
||||
*/
|
||||
abstract class ParameterMirror implements VariableMirror {
|
||||
/**
|
||||
* A mirror on the type of this parameter.
|
||||
*/
|
||||
TypeMirror get type;
|
||||
|
||||
/**
|
||||
* Is this parameter optional?
|
||||
*/
|
||||
bool get isOptional;
|
||||
|
||||
/**
|
||||
* Is this parameter named?
|
||||
*/
|
||||
bool get isNamed;
|
||||
|
||||
/**
|
||||
* Does this parameter have a default value?
|
||||
*/
|
||||
bool get hasDefaultValue;
|
||||
|
||||
/**
|
||||
* A mirror on the default value for this parameter, if it exists.
|
||||
*
|
||||
* TODO(turnidge): String may not be a good representation of this
|
||||
* at runtime.
|
||||
*/
|
||||
String get defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* A [SourceLocation] describes the span of an entity in Dart source code.
|
||||
*/
|
||||
abstract class SourceLocation {
|
||||
}
|
||||
|
||||
/**
|
||||
* When an error occurs during the mirrored execution of code, a
|
||||
* [MirroredError] is thrown.
|
||||
*
|
||||
* In general, there are three main classes of failure that can happen
|
||||
* during mirrored execution of code in some isolate:
|
||||
*
|
||||
* - An exception is thrown but not caught. This is caught by the
|
||||
* mirrors framework and a [MirroredUncaughtExceptionError] is
|
||||
* created and thrown.
|
||||
*
|
||||
* - A compile-time error occurs, such as a syntax error. This is
|
||||
* suppressed by the mirrors framework and a
|
||||
* [MirroredCompilationError] is created and thrown.
|
||||
*
|
||||
* - A truly fatal error occurs, causing the isolate to be exited. If
|
||||
* the reflector and reflectee share the same isolate, then they
|
||||
* will both suffer. If the reflector and reflectee are in distinct
|
||||
* isolates, then we hope to provide some information about the
|
||||
* isolate death, but this has yet to be implemented.
|
||||
*
|
||||
* TODO(turnidge): Specify the behavior for remote fatal errors.
|
||||
*/
|
||||
abstract class MirroredError implements Exception {
|
||||
}
|
||||
|
||||
/**
|
||||
* When an uncaught exception occurs during the mirrored execution
|
||||
* of code, a [MirroredUncaughtExceptionError] is thrown.
|
||||
*
|
||||
* This exception contains a mirror on the original exception object.
|
||||
* It also contains an object which can be used to recover the
|
||||
* stacktrace.
|
||||
*/
|
||||
class MirroredUncaughtExceptionError extends MirroredError {
|
||||
MirroredUncaughtExceptionError(this.exception_mirror,
|
||||
this.exception_string,
|
||||
this.stacktrace) {}
|
||||
|
||||
/** A mirror on the exception object. */
|
||||
final InstanceMirror exception_mirror;
|
||||
|
||||
/** The result of toString() for the exception object. */
|
||||
final String exception_string;
|
||||
|
||||
/** A stacktrace object for the uncaught exception. */
|
||||
final Object stacktrace;
|
||||
|
||||
String toString() {
|
||||
return
|
||||
"Uncaught exception during mirrored execution: <${exception_string}>";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* When a compile-time error occurs during the mirrored execution
|
||||
* of code, a [MirroredCompilationError] is thrown.
|
||||
*
|
||||
* This exception includes the compile-time error message that would
|
||||
* have been displayed to the user, if the function had not been
|
||||
* invoked via mirror.
|
||||
*/
|
||||
class MirroredCompilationError extends MirroredError {
|
||||
MirroredCompilationError(this.message) {}
|
||||
|
||||
final String message;
|
||||
|
||||
String toString() {
|
||||
return "Compile-time error during mirrored execution: <$message>";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A [MirrorException] is used to indicate errors within the mirrors
|
||||
* framework.
|
||||
*/
|
||||
class MirrorException implements Exception {
|
||||
const MirrorException(String this._message);
|
||||
String toString() => "MirrorException: '$_message'";
|
||||
final String _message;
|
||||
}
|
||||
part "mirror_classes.dart";
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_scalarlist;
|
||||
|
||||
/**
|
||||
* A random-access sequence of bytes that also provides random access to
|
||||
* the fixed-width integers and floating point numbers represented by
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
* This library allows you to work with arrays of scalar values
|
||||
* of various sizes.
|
||||
*/
|
||||
#library('dart:scalarlist');
|
||||
library dart_scalarlist;
|
||||
|
||||
// TODO(ager): Inline the contents of byte_arrays.dart here and get
|
||||
// rid of scalarlist_sources.gypi when the VM understands normal
|
||||
// library structure for builtin libraries.
|
||||
#source('byte_arrays.dart');
|
||||
part 'byte_arrays.dart';
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_uri;
|
||||
|
||||
/**
|
||||
* Javascript-like URI encode/decode functions.
|
||||
* The documentation here borrows heavily from the original Javascript
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// 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.
|
||||
|
||||
part of dart_uri;
|
||||
|
||||
String merge(String base, String reference) {
|
||||
if (base == "") return "/$reference";
|
||||
return "${base.substring(0, base.lastIndexOf("/") + 1)}$reference";
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue