blob: fbcd87793ac4bec7e36cb2b260ab581d78719a44 [file] [log] [blame]
// 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.
// part of "common_patch.dart";
@patch
@pragma("vm:entry-point")
class _Platform {
@patch
@pragma("vm:external-name", "Platform_NumberOfProcessors")
external static int _numberOfProcessors();
@patch
@pragma("vm:external-name", "Platform_PathSeparator")
external static String _pathSeparator();
@patch
@pragma("vm:external-name", "Platform_OperatingSystem")
external static String _operatingSystem();
@patch
@pragma("vm:external-name", "Platform_OperatingSystemVersion")
external static _operatingSystemVersion();
@patch
@pragma("vm:external-name", "Platform_LocalHostname")
external static _localHostname();
@patch
@pragma("vm:external-name", "Platform_ExecutableName")
external static _executable();
@patch
@pragma("vm:external-name", "Platform_ResolvedExecutableName")
external static _resolvedExecutable();
@patch
@pragma("vm:external-name", "Platform_Environment")
external static _environment();
@patch
@pragma("vm:external-name", "Platform_ExecutableArguments")
external static List<String> _executableArguments();
@patch
@pragma("vm:external-name", "Platform_GetVersion")
external static String _version();
@patch
@pragma("vm:external-name", "Platform_LocaleName")
external static String _localeName();
@patch
static String? _packageRoot() => VMLibraryHooks.packageRootString;
@patch
static String? _packageConfig() => VMLibraryHooks.packageConfigString;
@patch
static Uri _script() => VMLibraryHooks.platformScript!;
// This script singleton is written to by the embedder if applicable.
@pragma("vm:entry-point")
static void set _nativeScript(String path) {
VMLibraryHooks.platformScript = (() {
if (path.startsWith('http:') ||
path.startsWith('https:') ||
path.startsWith('package:') ||
path.startsWith('dart:') ||
path.startsWith('data:') ||
path.startsWith('file:')) {
return Uri.parse(path);
} else {
return Uri.base.resolveUri(new Uri.file(path));
}
});
}
}