| Index: lib/compiler/implementation/lib/patch/coreimpl.dartp
|
| diff --git a/lib/compiler/implementation/lib/patch/coreimpl.dartp b/lib/compiler/implementation/lib/patch/coreimpl.dartp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0f9c85298ab6b108f94b716cf76a89bb78212c3b
|
| --- /dev/null
|
| +++ b/lib/compiler/implementation/lib/patch/coreimpl.dartp
|
| @@ -0,0 +1,122 @@
|
| +// 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.
|
| +
|
| +// Patch file for dart:coreimpl.
|
| +
|
| +patch class DateImplementation {
|
| + patch DateImplementation(int years,
|
| + [int month = 1,
|
| + int day = 1,
|
| + int hour = 0,
|
| + int minute = 0,
|
| + int second = 0,
|
| + int millisecond = 0,
|
| + bool isUtc = false])
|
| + : this.isUtc = checkNull(isUtc),
|
| + millisecondsSinceEpoch = Primitives.valueFromDecomposedDate(
|
| + years, month, day, hour, minute, second, millisecond, isUtc) {
|
| + Primitives.lazyAsJsDate(this);
|
| + }
|
| +
|
| + patch DateImplementation.now()
|
| + : isUtc = false,
|
| + millisecondsSinceEpoch = Primitives.dateNow() {
|
| + Primitives.lazyAsJsDate(this);
|
| + }
|
| +
|
| + patch String get timeZoneName() {
|
| + if (isUtc) return "UTC";
|
| + return Primitives.getTimeZoneName(this);
|
| + }
|
| +
|
| + patch Duration get timeZoneOffset() {
|
| + if (isUtc) return new Duration(0);
|
| + return new Duration(minutes: Primitives.getTimeZoneOffsetInMinutes(this));
|
| + }
|
| +
|
| + patch int get year() => Primitives.getYear(this);
|
| +
|
| + patch int get month() => Primitives.getMonth(this);
|
| +
|
| + patch int get day() => Primitives.getDay(this);
|
| +
|
| + patch int get hour() => Primitives.getHours(this);
|
| +
|
| + patch int get minute() => Primitives.getMinutes(this);
|
| +
|
| + patch int get second() => Primitives.getSeconds(this);
|
| +
|
| + patch int get millisecond() => Primitives.getMilliseconds(this);
|
| +
|
| + patch int get weekday() => Primitives.getWeekday(this);
|
| +}
|
| +
|
| +patch class RuntimeOptions {
|
| + patch List<String> get arguments() {
|
| + if (_arguments === null) {
|
| + // On first access make a copy of the native arguments.
|
| + _arguments = _nativeArguments.getRange(0, _nativeArguments.length);
|
| + }
|
| + return _arguments;
|
| + }
|
| +
|
| + patch String get executable() {
|
| + return _nativeExecutable;
|
| + }
|
| +
|
| + patch String get script() {
|
| + return _nativeScript;
|
| + }
|
| +
|
| + List<String> _arguments = null;
|
| +
|
| + // This arguments singleton is written to by the embedder if applicable.
|
| + static List<String> _nativeArguments = const [];
|
| +
|
| + // This executable singleton is written to by the embedder if applicable.
|
| + static String _nativeExecutable = '';
|
| +
|
| + // This script singleton is written to by the embedder if applicable.
|
| + static String _nativeScript = '';
|
| +}
|
| +
|
| +patch class _Clock {
|
| + patch static int now() => Primitives.dateNow();
|
| +
|
| + patch static int frequency() => 1000;
|
| +}
|
| +
|
| +patch class ExpandoImplementation<T> {
|
| + patch T operator[](Object object) {
|
| + var values = Primitives.getProperty(object, _EXPANDO_PROPERTY_NAME);
|
| + return (values === null) ? null : Primitives.getProperty(values, _getKey());
|
| + }
|
| +
|
| + patch operator[]=(Object object, T value) {
|
| + var values = Primitives.getProperty(object, _EXPANDO_PROPERTY_NAME);
|
| + if (values === null) {
|
| + values = new Object();
|
| + Primitives.setProperty(object, _EXPANDO_PROPERTY_NAME, values);
|
| + }
|
| + Primitives.setProperty(values, _getKey(), value);
|
| + }
|
| +
|
| + patch String toString() {
|
| + String key = _getKey();
|
| + return (name === null) ? "Expando:${key}" : "Expando:${name}@${key}";
|
| + }
|
| +
|
| + String _getKey() {
|
| + String key = Primitives.getProperty(this, _KEY_PROPERTY_NAME);
|
| + if (key === null) {
|
| + key = "expando\$key\$${_keyCount++}";
|
| + Primitives.setProperty(this, _KEY_PROPERTY_NAME, key);
|
| + }
|
| + return key;
|
| + }
|
| +
|
| + static final String _KEY_PROPERTY_NAME = 'expando\$key';
|
| + static final String _EXPANDO_PROPERTY_NAME = 'expando\$values';
|
| + static int _keyCount = 0;
|
| +}
|
|
|