Commit graph

2779 commits

Author SHA1 Message Date
Chris Knight a7056095a5
feat(node): add EventEmitter.errorMonitor (#3960) 2020-02-11 15:55:54 -05:00
木杉 92019498f6
fix(file_server): don't crash on "%" pathname (#3953) 2020-02-11 15:53:09 -05:00
Bartek Iwańczuk b67f20be3b
update references to testing/mod.ts in manual (#3973) 2020-02-11 21:50:20 +01:00
Bartek Iwańczuk 61273085e4
refactor: rewrite tests in std/ to use Deno.test (#3930) 2020-02-11 17:24:27 +01:00
Bartek Iwańczuk e0bcecee60
refactor: Remove atomics from metrics (#3968)
* replace "AtomicUsize" with "u64" for field type on "Metrics"
* move "compiler_starts" field from "Metrics" to "GlobalState"
2020-02-11 17:23:40 +01:00
uki00a 5a143cdbd3
fix(std/node): support named import for EventEmitter (#3959) 2020-02-11 11:19:35 -05:00
Bartek Iwańczuk a3bfbccead
refactor: rewrite deno test, add Deno.test() (#3865)
* rewrite test runner in Rust
* migrate "test" and "runTests" functions from std to "Deno" namespace
* use "Deno.test()" to run internal JS unit tests
* remove std downloads for Deno subcommands
2020-02-11 12:01:56 +01:00
Nayeem Rahman 701ce9b334
refactor: Use PathBuf for paths in flag parsing and whitelists (#3955)
* Use PathBuf for DenoSubcommand::Bundle's out_file
* Use PathBuf for DenoSubcommand::Format's files
* Use PathBuf for DenoSubcommand::Install's dir
* Use PathBuf for read/write whitelists
2020-02-11 10:29:36 +01:00
Bartek Iwańczuk 79b3bc05d6
workers: basic event loop (#3828)
* establish basic event loop for workers
* make "self.close()" inside worker
* remove "runWorkerMessageLoop() - instead manually call global function 
  in Rust when message arrives. This is done in preparation for structured clone
* refactor "WorkerChannel" and use distinct structs for internal 
  and external channels;  "WorkerChannelsInternal" and "WorkerHandle"
* move "State.worker_channels_internal" to "Worker.internal_channels"
* add "WorkerEvent" enum for child->host communication; 
  currently "Message(Buf)" and  "Error(ErrBox)" variants are supported
* add tests for nested workers
* add tests for worker throwing error on startup
2020-02-11 10:04:59 +01:00
Chris Knight 81905a867e
feat: Event emitter node polyfill (#3944) 2020-02-10 18:19:48 -05:00
Ryan Dahl e1105a1594
upgrade: dprint-plugin-typescript 0.5.0 (#3952) 2020-02-10 19:08:49 +01:00
Yusuke Sakurai e6f204199b
feat: Support HTTP trailer headers for response (#3938) 2020-02-10 11:38:48 -05:00
Benny Shi e8f639ce53 Add readlink, readlinkSync for std/node/fs.ts (#3926) 2020-02-10 03:38:05 -06:00
Andy Finch 1abd408770
No longer require aligned buffer for shared queue (#3935)
Fixes: #3925
2020-02-09 10:54:16 -08:00
Nikolai Vavilov 61c5bb86db
Bump required VS version (#3940)
deno builds successfully with VS2019, so no need to require VS2017.
2020-02-09 10:07:37 -06:00
Kevin (Kun) "Kassimo" Qian 5066018412
fmt: deno fmt - formats stdin and print to stdout (#3920) 2020-02-09 11:19:05 +01:00
Bartek Iwańczuk 1c0ffa1383
reenable server tests (#3928) 2020-02-08 14:24:09 -06:00
Yusuke Sakurai a4bb8bab44 remove non-null assertion operator from std (part2) (#3927) 2020-02-08 14:15:59 -06:00
Bartek Iwańczuk cdba5ab6fc refactor: rename ThreadSafeState, use RefCell for mutable state (#3931)
* rename ThreadSafeState to State
* State stores InnerState wrapped in Rc and RefCell
2020-02-08 20:34:31 +01:00
Kevin (Kun) "Kassimo" Qian 619a24390f
install: add --force flag and remove yes/no prompt (#3917) 2020-02-08 09:49:55 +01:00
Bert Belder f650c3edb3
Refactor deno_core_http_bench and make it single-threaded (#3903) 2020-02-07 18:17:03 -08:00
Bert Belder 25467aa7c7
Add blanket impl for the 'Resource' trait (#3903) 2020-02-07 17:18:28 -08:00
Brad Dunbar d7edf393b6
toAsyncIterable: Remove unnecessary EOF check (#3914)
In denoland/deno#2335 a conditional was added to make sure
toAsyncIterator didn't skip chunks because the reader returned data and
EOF in a single call, fixing #2330.

Later, in denoland/deno#2591, the `Reader` interface changed to
`Promise<number | EOF>`. Since the reader no longer returns data and EOF
in a single call, this conditional is not necessary. We can just return
`{ done: true }` when we get `EOF`.

Co-authored-by: Arun Srinivasan <rulfzid@gmail.com>

Co-authored-by: Arun Srinivasan <rulfzid@gmail.com>
2020-02-07 18:51:01 -05:00
Ryan Dahl 724e39f13f
Enable thread pool for blocking ops (#3912) 2020-02-07 17:54:44 -05:00
Ryan Dahl 99186dbaa2
Remove conditionals from installer (#3909) 2020-02-07 09:31:19 +01:00
Ryan Dahl 98fc7db47d
Fix deno types | head (#3910) 2020-02-07 09:30:05 +01:00
Yusuke Sakurai c2986891f6
remove non-null assertion operator from std (part1) (#3900) 2020-02-07 02:23:38 -05:00
Kitson Kelly ea6179f7dc
Improve support for diagnostics from runtime compiler APIs (#3911)
- Exports diagnostic items from `diagnostics.ts` which are missing at
  runtime.
- Returns an array of diagnostics, instead of an object with a property
  of `items`.  This is because of the way Rust deals with certain
  structures, and shouldn't be exposed in the APIs.
2020-02-07 01:54:05 -05:00
Yoshiya Hinosawa 5a8ba3b114
feat: add std/signal/mod.ts (#3913) 2020-02-07 01:53:15 -05:00
Ryan Dahl d9c84eb91e
Rename ThreadSafeGlobalState to GlobalState (#3907)
simplify
2020-02-06 23:05:02 -05:00
Seungho Kim 522e856347
fix(cli/flags.rs): Prevent providing --allow-env flag twice (#3906) 2020-02-06 21:58:11 -05:00
Ryan Dahl 5e8581ff4b
fix 015_duplicate_parallel_import (#3904) 2020-02-06 21:24:51 -05:00
Nayeem Rahman 971391dbaf
fix(std/path/globrex.ts): Use non-capturing groups in globrex() (#3898) 2020-02-06 17:25:39 -05:00
Yusuke Sakurai 699d10bd9e
fix: make WebSocket.send() exclusive (#3885) 2020-02-06 08:42:32 -05:00
Ryan Dahl ed680552a2
fix: basic web worker message passing (#3893)
Removes OP_HOST_GET_WORKER_LOADED, OP_HOST_POLL_WORKER, 
OP_HOST_RESUME_WORKER and ready/messageBuffer in cli/js/workers.ts.
2020-02-05 17:16:07 -05:00
Chris Knight 700f5e45ef
Fix: jsDoc for Deno.dir() (#3888) 2020-02-05 15:41:55 -05:00
Chris Knight a04e7270cd
fix: Validate all tests included in unit_tests.ts (#3879) 2020-02-05 09:23:23 +01:00
Ryan Dahl 55ea854671
Move create_channels into worker constructor (#3889) 2020-02-05 08:40:38 +01:00
Luka Hartwig 7d115a2a65
refactor: port fetch test to rust (#3887) 2020-02-04 17:42:07 -05:00
Bartek Iwańczuk 184be99f5b
refactor: CLI subcommands and argv (#3886) 2020-02-04 20:24:33 +01:00
Tilman Roeder 2ab49a80a6
Do not encode files loaded from network as utf8 (#3856) 2020-02-04 11:27:50 -05:00
Kitson Kelly 145188bcf7
std/http/server::serve aligned to std/http/server::serveTLS (#3881) 2020-02-04 15:15:23 +01:00
Bartek Iwańczuk 70eccff7f1
reenable some tests (#3882) 2020-02-04 09:10:46 -05:00
Ryan Dahl 161cf7cdfd
refactor: Use Tokio's single-threaded runtime (#3844)
This change simplifies how we execute V8. Previously V8 Isolates jumped
around threads every time they were woken up. This was overly complex and
potentially hurting performance in a myriad ways. Now isolates run on
their own dedicated thread and never move.

- blocking_json spawns a thread and does not use a thread pool
- op_host_poll_worker and op_host_resume_worker are non-operational
- removes Worker::get_message and Worker::post_message
- ThreadSafeState::workers table contains WorkerChannel entries instead
  of actual Worker instances.
- MainWorker and CompilerWorker are no longer Futures.
- The multi-threaded version of deno_core_http_bench was removed.
- AyncOps no longer need to be Send + Sync

This PR is very large and several tests were disabled to speed
integration:
- installer_test_local_module_run
- installer_test_remote_module_run
- _015_duplicate_parallel_import
- _026_workers
2020-02-03 18:08:44 -05:00
Ryan Dahl 0471243334
upgrade: dprint 0.3.0-alpha.6 2020-02-03 15:52:32 -05:00
Bartek Iwańczuk f4cc08c4fc
v0.32.0 2020-02-03 16:36:07 +01:00
serverhiccups 2b0cf74a8f
Make fetch API more standards compliant (#3667) 2020-02-03 15:54:47 +01:00
Ryan Dahl fba40d86c4
Use tokio::test for some of cli's unit tests (#3868) 2020-02-03 08:53:50 -05:00
Rafael Vargas 55063dd8e8
fix: Deno.remove() to properly remove dangling symlinks (#3860)
For some reason, the unit tests for Deno.remove() were not being imported to 
unit_tests.ts and, consequently, not being executed. Thus, I imported them, 
refactored some existent ones and wrote new ones for the symlink removal case.

Since the creation of a symlink is not implemented for Windows yet, assertions
that consider this state were added when the tests are executed in this OS.
2020-02-03 08:20:15 -05:00
Luka Hartwig f168597b7a
Remove //tests symlink (#3849) 2020-02-02 16:55:22 -05:00