summaryrefslogtreecommitdiff
path: root/runtime/js/README.md
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2020-12-17 16:37:57 +0000
committerGitHub <noreply@github.com>2020-12-17 17:37:57 +0100
commitffb5f7a4e1d5d4ac488058ca3ec3c0805587fe44 (patch)
treedc7b79a699732680fa309d97e5b4c2bc5f486a4a /runtime/js/README.md
parent55dc467b419b8e5897b1c832b04d63e383253d84 (diff)
refactor: Rename runtime/rt to runtime/js (#8806)
Diffstat (limited to 'runtime/js/README.md')
-rw-r--r--runtime/js/README.md59
1 files changed, 59 insertions, 0 deletions
diff --git a/runtime/js/README.md b/runtime/js/README.md
new file mode 100644
index 000000000..b17fa22e5
--- /dev/null
+++ b/runtime/js/README.md
@@ -0,0 +1,59 @@
+# Runtime JavaScript Code
+
+This directory contains Deno runtime code written in plain JavaScript.
+
+Each file is a plain, old **script**, not ES modules. The reason is that
+snapshotting ES modules is much harder, especially if one needs to manipulate
+global scope (like in case of Deno).
+
+Each file is prefixed with a number, telling in which order scripts should be
+loaded into V8 isolate. This is temporary solution and we're striving not to
+require specific order (though it's not 100% obvious if that's feasible).
+
+## Deno Web APIs
+
+This directory facilities Web APIs that are available in Deno.
+
+Please note, that some implementations might not be completely aligned with
+specification.
+
+Some Web APIs are using ops under the hood, eg. `console`, `performance`.
+
+## Implemented Web APIs
+
+- [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob): for
+ representing opaque binary data.
+- [Console](https://developer.mozilla.org/en-US/docs/Web/API/Console): for
+ logging purposes.
+- [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent),
+ [EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)
+ and
+ [EventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventListener):
+ to work with DOM events.
+ - **Implementation notes:** There is no DOM hierarchy in Deno, so there is no
+ tree for Events to bubble/capture through.
+- [fetch](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch),
+ [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request),
+ [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response),
+ [Body](https://developer.mozilla.org/en-US/docs/Web/API/Body) and
+ [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers): modern
+ Promise-based HTTP Request API.
+- [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData): access
+ to a `multipart/form-data` serialization.
+- [Performance](https://developer.mozilla.org/en-US/docs/Web/API/Performance):
+ retrieving current time with a high precision.
+- [setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout),
+ [setInterval](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval),
+ [clearTimeout](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout):
+ scheduling callbacks in future and
+ [clearInterval](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval).
+- [Stream](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) for
+ creating, composing, and consuming streams of data.
+- [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL) and
+ [URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams):
+ to construct and parse URLSs.
+- [Worker](https://developer.mozilla.org/en-US/docs/Web/API/Worker): executing
+ additional code in a separate thread.
+ - **Implementation notes:** Blob URLs are not supported, object ownership
+ cannot be transferred, posted data is serialized to JSON instead of
+ [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm).