blob: c4229370fc2e86cdacff6168f5a04b1abc4bda1a [file] [log] [blame]
// Copyright (c) 2013, 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.
import 'dart:core' hide Symbol;
@patch
List makeListFixedLength(List growableList)
native "Internal_makeListFixedLength";
@patch
List makeFixedListUnmodifiable(List fixedLengthList)
native "Internal_makeFixedListUnmodifiable";
class VMLibraryHooks {
// Example: "dart:isolate _Timer._factory"
static var timerFactory;
// Example: "dart:io _EventHandler._sendData"
static var eventHandlerSendData;
// A nullary closure that answers the current clock value in milliseconds.
// Example: "dart:io _EventHandler._timerMillisecondClock"
static var timerMillisecondClock;
// Implementation of Resource.readAsBytes.
static var resourceReadAsBytes;
// Implementation of package root/map provision.
static String packageRootString;
static String packageConfigString;
static Object /* Future<Uri> */ packageRootUriFuture;
static Object /* Future<Uri> */ packageConfigUriFuture;
static Object /* Future<Uri> */ resolvePackageUriFuture;
static var platformScript;
}
final bool is64Bit = _inquireIs64Bit();
bool _inquireIs64Bit() native "Internal_inquireIs64Bit";
bool _classRangeCheck(int cid, int lowerLimit, int upperLimit) {
return cid >= lowerLimit && cid <= upperLimit;
}
bool _classRangeCheckNegative(int cid, int lowerLimit, int upperLimit) {
return cid < lowerLimit || cid > upperLimit;
}
// Utility class now only used by the VM.
class Lists {
static void copy<E>(List<E> src, int srcStart, List<E> dst, int dstStart, int count) {
if (srcStart < dstStart) {
for (int i = srcStart + count - 1, j = dstStart + count - 1;
i >= srcStart;
i--, j--) {
dst[j] = src[i];
}
} else {
for (int i = srcStart, j = dstStart; i < srcStart + count; i++, j++) {
dst[j] = src[i];
}
}
}
}