1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-29 10:39:10 -05:00
Commit graph

49 commits

Author SHA1 Message Date
Kitson Kelly
24d6bf6aeb Remove 'deno' builtin module (#1895) 2019-03-07 21:56:56 -05:00
Bert Belder
4cb157b85b
libdeno: fix libdeno.print() unicode output on Windows
Note that emoji are still not supported, due limitations of the
Windows console.
2019-03-03 19:19:39 -08:00
Bert Belder
2e9d43391f
libdeno: remove prints_newline parameter from libdeno.print() 2019-03-03 19:19:01 -08:00
Ryan Dahl
b8a537d020
deno_core (#1827)
A new low-level crate with focus on speed. 
This doesn't yet hook into the existing code base.
2019-02-26 17:36:05 -05:00
Bartek Iwańczuk
5dfbbbb07a Add import.meta.main (#1835) 2019-02-26 13:29:45 -05:00
Kevin (Kun) "Kassimo" Qian
1d36eb47eb Support scoped variables, unblock REPL async op, and REPL error colors (#1721) 2019-02-09 16:55:40 -05:00
Bert Belder
bbe2004f5d
Shared buffer fixes (#1644)
* makes `libdeno.shared` a `SharedArrayBuffer` instead of a regular `ArrayBuffer`.
* fixes `libdeno.shared` becoming undefined after accessing it once.
2019-02-08 20:32:17 -08:00
Masashi Hirano
e2d76278bf Replace macros to check nullptr (#1674)
This replaces CHECK_EQ/CHECK_NE with CHECK_NULL/CHECK_NOT_NULL to check nullptr.
These macros are implemented in V8.
Refs: https://github.com/denoland/deno_third_party/blob/master/v8/src/base/logging.h#L312
2019-02-04 11:53:40 -05:00
Ryan Dahl
df54db7762 Fix v8_str internalize bug 2019-02-02 16:46:31 -05:00
Ryan Dahl
00597ffde1
Refactor libdeno ES module interface. (#1624)
Allows for future asynchronous module loading.

Add support for import.meta.url

Fixes #1496
2019-01-30 17:21:31 -05:00
Ryan Dahl
06c0e29118 Fix cpplint 2019-01-30 15:53:23 -05:00
Ryan Dahl
13582ff3f2 libdeno: improve exception handling 2019-01-30 15:53:23 -05:00
Yoshiya Hinosawa
77114fbda4 chore: update license lines (#1557) 2019-01-21 13:03:30 -06:00
Kevin (Kun) "Kassimo" Qian
f9b167deb0 Avoid crashes on ES module resolution when module not found (#1546) 2019-01-18 15:15:09 -05:00
Kevin (Kun) "Kassimo" Qian
c870cf4082 Add --prefetch flag for deps prefetch without running (#1475) 2019-01-15 12:19:58 -05:00
Ryan Dahl
8fdc1251cd libdeno: pipe more exception information thru 2019-01-11 21:44:26 -05:00
Kevin (Kun) "Kassimo" Qian
d835c84ba9 Prevent segfault when eval throws an error (#1411) 2019-01-09 15:56:42 -05:00
Kevin (Kun) "Kassimo" Qian
2558d6e184 Use multimap with Persistent module handle to avoid IdentityHash collision (#1466) 2019-01-07 21:18:32 -05:00
Yoshiya Hinosawa
cae71ed841 Implement console.groupCollapsed (#1452)
This implementation of groupCollapsed is intentionally different
from the spec defined by whatwg. See the conversation in #1355
and #1363.
2019-01-06 16:34:52 -05:00
Ryan Dahl
1b7938e3aa
Add libdeno.builtinModules (#1463)
This is needed to support builtin modules like

    import { open } from "deno"
2019-01-06 16:32:21 -05:00
Ryan Dahl
bba0ed3185 Add ESM support to libdeno
Introduces deno_execute_mod() for executing ES modules.
2019-01-03 09:45:40 -05:00
Ryan Dahl
cbb18a596a Properly internalize V8 strings. 2019-01-03 09:45:40 -05:00
迷渡
ef840f9e06 print string with NULL '\0' (#1428) 2018-12-30 20:58:23 +01:00
Ryan Dahl
f986eb25c5
Merge deno_new_snapshotter behavior into deno_new (#1318) 2018-12-13 16:25:42 -05:00
Ryan Dahl
c113df1bb8
Process source maps in Rust instead of JS (#1280)
- Improves speed and binary size significantly.
- Makes deno_last_exception() output a JSON structure.
- Isolate::execute and Isolate::event_loop now return
  structured, mapped JSError objects on errors.
- Removes libdeno functions:
  libdeno.setGlobalErrorHandler()
  libdeno.setPromiseRejectHandler()
  libdeno.setPromiseErrorExaminer()

In collaboration with Ryan Dahl.
2018-12-06 23:05:36 -05:00
Ryan Dahl
d70b04c6d7
Add deno_config struct for isolate creation. (#1277)
In preperation for adding other callbacks to libdeno.
2018-12-04 15:06:20 -08:00
Ryan Dahl
b3400d822f Decode main.js.map during snapshotting.
Pro:
time ./out/debug/deno tests/error_001.ts  3.0s -> 0.4s

Con:
time ./tool/build.py snapshot              33s -> 1m52s
out/debug/gen/snapshot_deno.bin            39M -> 121M
2018-11-05 13:26:54 -08:00
Ryan Dahl
0501330607 Add libdeno.shared global shared ArrayBuffer. 2018-10-24 14:52:38 -07:00
Ryan Dahl
61cda72881 libdeno: Expose snapshot creation. 2018-10-24 14:52:38 -07:00
Ryan Dahl
6afe94b3c8 libdeno: clean up
- Use a proper class for DenoIsolate.
- Move extern C stuff to api.cc
2018-10-24 14:52:38 -07:00
Bert Belder
142e532910
libdeno: store v8::Persistent in map by value instead of by reference 2018-10-19 02:35:49 +02:00
Ryan Dahl
d534ea41ad Optimization: Use std::map for tracking zero-copy buffers
Instead of V8 map.
2018-10-18 17:49:03 -04:00
Ryan Dahl
4d669c63f4 Reduce ArrayBuffer allocations in ImportBuf() 2018-10-17 16:02:00 -04:00
Kevin (Kun) "Kassimo" Qian
45d3b8955d Fix promise reject issue (#936) 2018-10-12 14:22:52 -04:00
Bert Belder
4f3250bc43
Remove deno_get_data()
Instead, pass the isolate data to the dispatch callback directly.
2018-10-08 18:19:36 +02:00
Bert Belder
e742af10aa
Abide by the rules when passing Isolate between c and rust
Ensure that at most one mutable Isolate reference exists at a time.

`deno_execute()` and `deno_respond()` now borrow a reference to the rust-side
isolate from the caller. When we need a reference to the isolate while one of
these functions is on the stack, `deno_get_data()` can be used to borrow back
that reference.
2018-10-08 18:19:32 +02:00
Bert Belder
ad4c4c214a
Rename Deno.data to Deno.user_data
Also use the correct rust type for it.
2018-10-08 18:10:28 +02:00
Ryan Dahl
f998f7b9af Fix unused variable warning in release mode. 2018-10-06 20:24:47 -04:00
Bert Belder
7f29e14b2a
libdeno: use cstream instead of printf to write to stderr 2018-09-28 12:56:38 -07:00
Bert Belder
3ddac4d86c
libdeno: remove dead code 2018-09-28 12:56:37 -07:00
Ryan Dahl
d38ccfc6dc
Support zero-copy data in libdeno.send(). (#838)
This is a large API refactor of deno.h which replaces
deno_send() and deno_set_response() with deno_respond().
It also adds a req_id parameter to the deno_recv_cb.

Make writeFile/writeFileSync use it.
2018-09-27 17:33:10 -04:00
Kevin (Kun) "Kassimo" Qian
f156a86024 console.warn goes to stderr (#810) 2018-09-25 01:27:02 -04:00
Ryan Dahl
234d5ea780 libdeno.send(): Use GetContents instead of Externalize
Fixes #744.
2018-09-24 22:16:23 -04:00
ztplz
f3684c28e5 Rename deno.argv, libdeno::DenoC and deno_set_flags (#796) 2018-09-22 08:47:44 -04:00
Ryan Dahl
62470c4f45 Upgrade V8 to 7.0.276.15 2018-09-17 21:41:29 -07:00
Ryan Dahl
0d03fafbfe Map promises onto futures.
Refactors handlers.rs

The idea is that all Deno "ops" (aka bindings) should map onto
a Rust Future. By setting the "sync" flag in the Base message
users can determine if the future is executed immediately or put
on the event loop.

In the case of async futures, a promise is automatically created.
Errors are automatically forwarded and raised.

TODO:

- The file system ops in src/handler.rs are not using the thread pool
  yet. This will be done in the future using tokio_threadpool::blocking.
  That is, if you try to call them asynchronously, you will get a promise
  and it will act asynchronous, but currently it will be blocking.
- Handlers in src/handler.rs returned boxed futures. This was to make
  it easy while developing. We should try to remove this allocation.
2018-09-09 18:47:22 -04:00
Bert Belder
dfcde3e1ee
format 2018-08-26 19:22:37 +02:00
Yoshiya Hinosawa
17d6d6b336 refactor: add and use libdeno.setGlobalErrorHandler instead of window.onerror 2018-08-26 11:03:41 -04:00
Yoshiya Hinosawa
aaabc853e8 chore: move libdeno files to //libdeno/ 2018-08-19 11:27:47 -04:00
Renamed from src/binding.cc (Browse further)