1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-26 16:09:27 -05:00
denoland-deno/runtime/js/90_deno_ns.js
Aapo Alasuutari 3d6fa64f19
feat(ext/ffi): Callbacks (#14663)
This commit adds support for unstable FFI
callbacks. A callback is registered using
the `Deno.UnsafeCallback` API.

The backing memory for the callback can 
be disposed of using `Deno.UnsafeCallback#close`.
It is not safe to pass the callback after calling
close.

Callbacks from other than the isolate thread
are not supported.

Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
Co-authored-by: Bert Belder <bertbelder@gmail.com>
2022-06-20 16:36:04 +05:30

157 lines
6.3 KiB
JavaScript

// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
"use strict";
((window) => {
const core = window.Deno.core;
const __bootstrap = window.__bootstrap;
__bootstrap.denoNs = {
metrics: core.metrics,
test: __bootstrap.testing.test,
bench: __bootstrap.testing.bench,
Process: __bootstrap.process.Process,
run: __bootstrap.process.run,
isatty: __bootstrap.tty.isatty,
writeFileSync: __bootstrap.writeFile.writeFileSync,
writeFile: __bootstrap.writeFile.writeFile,
writeTextFileSync: __bootstrap.writeFile.writeTextFileSync,
writeTextFile: __bootstrap.writeFile.writeTextFile,
readTextFile: __bootstrap.readFile.readTextFile,
readTextFileSync: __bootstrap.readFile.readTextFileSync,
readFile: __bootstrap.readFile.readFile,
readFileSync: __bootstrap.readFile.readFileSync,
watchFs: __bootstrap.fsEvents.watchFs,
chmodSync: __bootstrap.fs.chmodSync,
chmod: __bootstrap.fs.chmod,
chown: __bootstrap.fs.chown,
chownSync: __bootstrap.fs.chownSync,
copyFileSync: __bootstrap.fs.copyFileSync,
cwd: __bootstrap.fs.cwd,
makeTempDirSync: __bootstrap.fs.makeTempDirSync,
makeTempDir: __bootstrap.fs.makeTempDir,
makeTempFileSync: __bootstrap.fs.makeTempFileSync,
makeTempFile: __bootstrap.fs.makeTempFile,
memoryUsage: core.memoryUsage,
mkdirSync: __bootstrap.fs.mkdirSync,
mkdir: __bootstrap.fs.mkdir,
chdir: __bootstrap.fs.chdir,
copyFile: __bootstrap.fs.copyFile,
readDirSync: __bootstrap.fs.readDirSync,
readDir: __bootstrap.fs.readDir,
readLinkSync: __bootstrap.fs.readLinkSync,
readLink: __bootstrap.fs.readLink,
realPathSync: __bootstrap.fs.realPathSync,
realPath: __bootstrap.fs.realPath,
removeSync: __bootstrap.fs.removeSync,
remove: __bootstrap.fs.remove,
renameSync: __bootstrap.fs.renameSync,
rename: __bootstrap.fs.rename,
version: __bootstrap.version.version,
build: __bootstrap.build.build,
statSync: __bootstrap.fs.statSync,
lstatSync: __bootstrap.fs.lstatSync,
stat: __bootstrap.fs.stat,
lstat: __bootstrap.fs.lstat,
truncateSync: __bootstrap.fs.truncateSync,
truncate: __bootstrap.fs.truncate,
ftruncateSync: __bootstrap.fs.ftruncateSync,
ftruncate: __bootstrap.fs.ftruncate,
errors: __bootstrap.errors.errors,
// TODO(kt3k): Remove this export at v2
// See https://github.com/denoland/deno/issues/9294
customInspect: __bootstrap.console.customInspect,
inspect: __bootstrap.console.inspect,
env: __bootstrap.os.env,
exit: __bootstrap.os.exit,
execPath: __bootstrap.os.execPath,
Buffer: __bootstrap.buffer.Buffer,
readAll: __bootstrap.buffer.readAll,
readAllSync: __bootstrap.buffer.readAllSync,
writeAll: __bootstrap.buffer.writeAll,
writeAllSync: __bootstrap.buffer.writeAllSync,
copy: __bootstrap.io.copy,
iter: __bootstrap.io.iter,
iterSync: __bootstrap.io.iterSync,
SeekMode: __bootstrap.io.SeekMode,
read: __bootstrap.io.read,
readSync: __bootstrap.io.readSync,
write: __bootstrap.io.write,
writeSync: __bootstrap.io.writeSync,
File: __bootstrap.files.File,
FsFile: __bootstrap.files.FsFile,
open: __bootstrap.files.open,
openSync: __bootstrap.files.openSync,
create: __bootstrap.files.create,
createSync: __bootstrap.files.createSync,
stdin: __bootstrap.files.stdin,
stdout: __bootstrap.files.stdout,
stderr: __bootstrap.files.stderr,
seek: __bootstrap.files.seek,
seekSync: __bootstrap.files.seekSync,
connect: __bootstrap.net.connect,
listen: __bootstrap.net.listen,
connectTls: __bootstrap.tls.connectTls,
listenTls: __bootstrap.tls.listenTls,
startTls: __bootstrap.tls.startTls,
shutdown: __bootstrap.net.shutdown,
fstatSync: __bootstrap.fs.fstatSync,
fstat: __bootstrap.fs.fstat,
fsyncSync: __bootstrap.fs.fsyncSync,
fsync: __bootstrap.fs.fsync,
fdatasyncSync: __bootstrap.fs.fdatasyncSync,
fdatasync: __bootstrap.fs.fdatasync,
symlink: __bootstrap.fs.symlink,
symlinkSync: __bootstrap.fs.symlinkSync,
link: __bootstrap.fs.link,
linkSync: __bootstrap.fs.linkSync,
permissions: __bootstrap.permissions.permissions,
Permissions: __bootstrap.permissions.Permissions,
PermissionStatus: __bootstrap.permissions.PermissionStatus,
serveHttp: __bootstrap.http.serveHttp,
resolveDns: __bootstrap.net.resolveDns,
upgradeWebSocket: __bootstrap.http.upgradeWebSocket,
upgradeHttp: __bootstrap.http.upgradeHttp,
kill: __bootstrap.process.kill,
addSignalListener: __bootstrap.signals.addSignalListener,
removeSignalListener: __bootstrap.signals.removeSignalListener,
};
__bootstrap.denoNsUnstable = {
setRaw: __bootstrap.tty.setRaw,
consoleSize: __bootstrap.tty.consoleSize,
DiagnosticCategory: __bootstrap.diagnostics.DiagnosticCategory,
loadavg: __bootstrap.os.loadavg,
hostname: __bootstrap.os.hostname,
osRelease: __bootstrap.os.osRelease,
systemMemoryInfo: __bootstrap.os.systemMemoryInfo,
networkInterfaces: __bootstrap.os.networkInterfaces,
getGid: __bootstrap.os.getGid,
getUid: __bootstrap.os.getUid,
listen: __bootstrap.netUnstable.listen,
connect: __bootstrap.netUnstable.connect,
listenDatagram: __bootstrap.netUnstable.listenDatagram,
Listener: __bootstrap.netUnstable.Listener,
umask: __bootstrap.fs.umask,
futime: __bootstrap.fs.futime,
futimeSync: __bootstrap.fs.futimeSync,
utime: __bootstrap.fs.utime,
utimeSync: __bootstrap.fs.utimeSync,
HttpClient: __bootstrap.fetch.HttpClient,
createHttpClient: __bootstrap.fetch.createHttpClient,
http: __bootstrap.http,
dlopen: __bootstrap.ffi.dlopen,
UnsafeCallback: __bootstrap.ffi.UnsafeCallback,
UnsafePointer: __bootstrap.ffi.UnsafePointer,
UnsafePointerView: __bootstrap.ffi.UnsafePointerView,
UnsafeFnPointer: __bootstrap.ffi.UnsafeFnPointer,
flock: __bootstrap.fs.flock,
flockSync: __bootstrap.fs.flockSync,
funlock: __bootstrap.fs.funlock,
funlockSync: __bootstrap.fs.funlockSync,
refTimer: __bootstrap.timers.refTimer,
unrefTimer: __bootstrap.timers.unrefTimer,
Child: __bootstrap.spawn.Child,
spawnChild: __bootstrap.spawn.spawnChild,
spawn: __bootstrap.spawn.spawn,
spawnSync: __bootstrap.spawn.spawnSync,
};
})(this);