Commit graph

528 commits

Author SHA1 Message Date
Gurwinder Singh d7d3e9f9de Fix multiple error messages for a missing file (#2587) 2019-06-27 09:34:12 -04:00
Bartek Iwańczuk 70a9859adc refactor: use Path/PathBuf in deno dir (#2559) 2019-06-24 10:10:21 -07:00
Ryan Dahl f2c50fae84
Fix silent failure of WebAssembly.instantiate() (#2548)
By making WASM compilation synchronous. We'll have to do more work to
make it properly async.
2019-06-20 09:04:34 -07:00
Kitson Kelly 425df50484 Combine CLI Errors (#2487) 2019-06-19 19:07:01 -07:00
Bartek Iwańczuk 01858f115a fix: use Loader::resolve in op_fetch_module_meta_data (#2519) 2019-06-18 07:23:06 -07:00
Matt Harrison d82c1991cf Add --seed for setting RNG seed (#2483) 2019-06-11 10:34:39 -04:00
Bartek Iwańczuk a115340288 feat: Import maps (#2360) 2019-06-09 09:08:20 -04:00
Kitson Kelly a71305b4fe Handle compiler diagnostics in Rust (#2445) 2019-06-04 09:03:56 -04:00
Ryan Dahl 60d4522641
Compiler exit before emit if preEmitDiagnostics found (#2441) 2019-06-03 12:58:49 -04:00
Ryan Dahl 856c44213b TS compiler refactor
* Compiler no longer has its own Tokio runtime. Compiler handles one
  message and then exits.

* Uses the simpler ts.CompilerHost interface instead of
  ts.LanguageServiceHost.

* avoids recompiling the same module by introducing a hacky but simple
  `hashset<string>` that stores the module names that have been already
  compiled.

* Removes the CompilerConfig op.

* Removes a lot of the mocking stuff in compiler.ts like `this._ts`. It
  is not useful as we don't even have tests.

* Turns off checkJs because it causes fmt_test to die with OOM.
2019-05-29 07:53:39 -04:00
Ryan Dahl 2952fb5405
Rename --allow-high-precision to --allow-hrtime (#2398) 2019-05-23 19:28:29 +03:00
Ryan Dahl 160a815767
Rename HTTP benchmarks (#2350) 2019-05-14 15:22:50 -04:00
Ryan Dahl aba952397a
Add progress bar (#2309) 2019-05-11 10:23:19 -04:00
Bartek Iwańczuk 5824e55efa fix: deno version panic (#2286) 2019-05-03 18:48:50 -04:00
Bartek Iwańczuk f6a9d7d717 add "deno run" subcommand (#2215) 2019-05-03 17:15:16 -04:00
Kevin (Kun) "Kassimo" Qian 3608117132 feat(cli cmd): deno xeval (#2260) 2019-05-03 16:24:09 -04:00
Kevin (Kun) "Kassimo" Qian 401a5c0211 feat: support .mjs extension resolution (#2283)
Removed `extmap` and added .mjs entry in `map_file_extension`.
The assert in the compiler does not need to be updated, since it is
resolving from the compiled cache instead of elsewhere (notice the .map
is asserted next to it)
2019-05-03 15:03:10 -04:00
Bartek Iwańczuk bf9b0c8231 Fix: deno --v8-options does not print v8 options (#2277) 2019-05-03 08:59:52 -04:00
Kitson Kelly 1a0f53a807 Add support for custom tsconfig.json (#2089)
Use `--config`
2019-04-29 07:58:31 -07:00
Ryan Dahl 9dfebbc949
Fix eslint warnings (#2151)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: LE GOFF Vincent <g_n_s@hotmail.fr>
2019-04-21 16:40:10 -04:00
Bartek Iwańczuk cd19da62d9 Refactor CLI entry point (#2157)
Changes "deno --types" to "deno types"
and "deno --prefetch" to "deno prefetch"
2019-04-21 11:34:18 -04:00
Ryan Dahl 1a69df4a05
Fix flaky tests (#2139) 2019-04-17 13:02:32 -04:00
Ryan Dahl 1bfb443369
Implement async module loading in CLI (#2084) 2019-04-16 15:13:42 -04:00
Bartek Iwańczuk 591b5e4a7d Add deno eval subcommand (#2102) 2019-04-13 13:24:15 -04:00
Vincent LE GOFF 734cf781c6 Allow high precision performance.now() (#1977) 2019-04-08 16:22:40 -04:00
Bartek Iwańczuk 780e72ab6a Refactor CLI flag parsing (#2025) 2019-04-07 01:13:06 +03:00
andy finch 7a3df0a184 Add worker benchmarks (#2059) 2019-04-05 22:57:59 +03:00
andy finch 0e7311e171 Non-fatal compile_sync failures (#2039)
And model worker resources as Stream
2019-04-04 05:33:32 -04:00
Kevin (Kun) "Kassimo" Qian 534b8d3021 Follow redirect location as new referrers for nested module imports (#2031)
Fixes #1742
Fixes #2021
2019-04-01 21:46:40 -04:00
andy finch b0a23beb8f Add web worker JS API (#1993)
* Refactored the way worker polling is scheduled and errors are handled.
* Share the worker future as a Shared
2019-04-01 15:09:59 -04:00
Ryan Dahl c25e262b04
Merge the --recompile and --reload flags (#2003) 2019-03-28 16:05:41 -04:00
Ryan Dahl d0b6152f11
Fix error when JS is executed with --recompile (#2007)
test case from @afinch7
2019-03-27 16:10:31 -04:00
Ryan Dahl 44773c9b0f Integrate //core into existing code base
This disables a few tests which are broken still:
- tests/error_004_missing_module.test
- tests/error_005_missing_dynamic_import.test
- tests/error_006_import_ext_failure.test
- repl_test test_set_timeout
- repl_test test_async_op
- repl_test test_set_timeout_interlaced
- all of permission_prompt_test
2019-03-18 17:17:08 -04:00
Kitson Kelly 034e2cc028 Migrate from tslint to eslint for linting (#1905) 2019-03-09 12:30:38 -05:00
Kitson Kelly 24d6bf6aeb Remove 'deno' builtin module (#1895) 2019-03-07 21:56:56 -05:00
Ryan Dahl c42a9d7370
Upgrade deno_std (#1892)
A major API change was that asserts are imported from testing/asserts.ts
now rather than testing/mod.ts and assertEqual as renamed to
assertEquals to conform to what is most common in JavaScript.
2019-03-06 20:48:46 -05:00
Andy Hayden 91364cabae Replace deno.land/x/std with deno.land/std (#1890) 2019-03-06 10:23:47 -05:00
Bartek Iwańczuk 5dfbbbb07a Add import.meta.main (#1835) 2019-02-26 13:29:45 -05:00
Kevin (Kun) "Kassimo" Qian c66d043ac6 Fix console.table display of Map and move tests to unit test (#1839) 2019-02-25 19:11:54 -05:00
Ryan Dahl 42408febe8 Add window.location 2019-02-18 23:04:59 -05:00
Kitson Kelly 54094c7510 Rationalise compiler ops (#1740) 2019-02-18 10:42:15 -05:00
Dmitry Sharshakov 4dc4329e27 Add execPath function (#1743) 2019-02-15 11:22:02 -05:00
Greg Altman 061a9353ba Module dep pretty printing in --info 2019-02-15 11:06:49 -05:00
Ryan Dahl 0412ab2308 Remove unnecessary tests/021_info_flag_setup.test 2019-02-15 11:06:49 -05:00
Kevin (Kun) "Kassimo" Qian fe0ceae543 Fix behavior for extensionless files with .mime file (#1779) 2019-02-15 11:05:29 -05:00
Kitson Kelly a21a5ad2fa Add Deno global namespace (#1748)
Resolves #1705

This PR adds the Deno APIs as a global namespace named `Deno`. For backwards
compatibility, the ability to `import * from "deno"` is preserved. I have tried
to convert every test and internal code the references the module to use the
namespace instead, but because I didn't break compatibility I am not sure.

On the REPL, `deno` no longer exists, replaced only with `Deno` to align with
the regular runtime.

The runtime type library includes both the namespace and module. This means it
duplicates the whole type information. When we remove the functionality from the
runtime, it will be a one line change to the library generator to remove the
module definition from the type library.

I marked a `TODO` in a couple places where to remove the `"deno"` module, but
there are additional places I know I didn't mark.
2019-02-12 10:08:56 -05:00
Ryan Dahl 526497bc29
Adds deno.noColor (#1716) 2019-02-08 22:13:04 -05:00
Ryan Dahl 99ce807a12
Add deps to --info output. (#1720)
Move module stuff into its own file.
2019-02-08 21:36:10 -05:00
Dmitry Sharshakov 9ab03389f0 Add --allow-read (#1689)
Co-authored-by: Greg Altman <g.s.altman@gmail.com>
2019-02-08 15:59:38 -05:00
Ryan Dahl 46804e50ed
Color exceptions (#1698) 2019-02-07 20:07:20 -05:00
Kitson Kelly 48fedee34e Add WebAssembly to runtime library (#1677)
This also modifies the `ts_library_builder` to support inlining assets.

Includes integration tests from @sh7dm
2019-02-05 08:12:58 -05:00
Dmitry Sharshakov 181b03273c Add isTTY function (#1622) 2019-02-02 22:05:30 -05:00
Kitson Kelly efa1eeb8b3 Compiler cleanups and minor improvements (#1656) 2019-02-02 18:27:53 -05:00
Ryan Dahl 18b815e336 Support --fmt 2019-02-02 17:48:43 -05:00
Ryan Dahl 4b61170e22 Better error message for bad filename CLI argument. 2019-02-02 17:33:21 -05:00
Kevin (Kun) "Kassimo" Qian 3650bae5f6 Add --info flag to display file info (compiled code/source map) (#1647) 2019-02-02 01:28: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 13582ff3f2 libdeno: improve exception handling 2019-01-30 15:53:23 -05:00
Kitson Kelly ee9c627cc5 Split out compiler snapshot (#1566)
Speeds up startup time, reduces runtime heap size.
2019-01-28 20:41:28 -05:00
Sergey Golovin f05fd7a1f3 Add console.table (#1608) 2019-01-28 16:41:29 -05: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
J2P befc6b2e76 Fixed copyright of types output 2019-01-17 14:44:31 -05:00
Kitson Kelly 7d08db2191 Fix JSON Modules (#1514) 2019-01-14 00:18:42 -05:00
Kevin (Kun) "Kassimo" Qian e29a676b78 Avoid show confusing lines in gen/bundle/main.js that throws error (#1502) 2019-01-12 09:14:09 -05:00
Ryan Dahl 6322f45e7b Pipe new exception info through into JSError
Adds a new integration test for syntax error.
2019-01-11 21:44:26 -05:00
Ryan Dahl 0ceb554343
Native ES modules (#1460)
* Native ES modules

This is a major refactor of internal compiler.

Before: JS and TS both were sent through the typescript compiler where
their imports were parsed and handled. Both compiled to AMD JS and
finally sent to V8

Now: JS is sent directly into V8. TS is sent through the typescript
compiler, but tsc generates ES modules now instead of AMD. This
generated JS is then dumped into V8.

This should much faster for pure JS code. It may improve TS compilation
speed.

In the future this allows us to separate TS out of the runtime heap and
into its own dedicated snapshot. This will result in a smaller runtime
heap, and thus should be faster.

Some tests were unfortunately disabled to ease landing this patch:
1. compiler_tests.ts which I intend to bring back in later commits.
2. Some text_encoding_test.ts tests which made the file invalid utf8.
   See PR for a discussion.
Also worth noting that this is necessary to support WASM
2019-01-09 12:59:46 -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 f37d67e809
Revert "Split Runner from Compiler" (#1462)
This reverts commit 3d03f5b0cb.
2019-01-06 14:17:13 -05:00
Ryan Dahl 4f62a56f90
Move testing module to deno_std (#1451)
Upgrades deno_std submodule.
2019-01-03 14:55:22 -05:00
Ryan Dahl 7024d9f253 Add rust binding and test for deno_execute_mod() 2019-01-03 09:45:40 -05:00
Kevin (Kun) "Kassimo" Qian 73fb98ce70 Lazily create .mime files only with mismatch/no extension (#1417) 2018-12-27 20:40:06 +00:00
Yoshiya Hinosawa 9bfe9a005b fix(test): fix test of unbuffered_stderr 2018-12-27 02:09:49 +00:00
Ryan Dahl 6cc998f28b
Remove support for extensionless import (#1396) 2018-12-23 11:44:08 -05:00
Yoshiya Hinosawa bee55fcd20 make stdout unbuffered (#1355) 2018-12-22 23:53:29 -05:00
Kevin (Kun) "Kassimo" Qian cbee2895b3 Implement Body.formData for fetch (#1393) 2018-12-21 17:09:53 -05:00
迷渡 a60da64626 Fix typo in tests (#1342) 2018-12-14 00:46:33 -05:00
Ryan Dahl 81c8926ee9 Use default filename for Isolate::execute. 2018-12-11 15:07:55 -05:00
Ryan Dahl 9a960b9f58
Use stderr for exceptions (#1303) 2018-12-10 17:50:41 -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
Kitson Kelly 3d03f5b0cb Split Runner from Compiler 2018-11-20 08:46:56 -08:00
Kitson Kelly 34b6b86c76 Ensure global type instances are available. 2018-11-09 08:39:49 -08:00
Kitson Kelly 5c51cffacf Omit sources from source maps in bundle. 2018-11-05 13:26:54 -08:00
Kitson Kelly 4e07783663 Improve integration test harness (#1142) 2018-11-04 11:52:31 -08:00
Kitson Kelly 2422e52625 Add ability to load JSON as modules (#1065) 2018-10-30 20:50:40 -07:00
Bartek Iwańczuk 946acbc559 Add resources op (#1119) 2018-10-30 12:58:55 -07:00
Kevin (Kun) "Kassimo" Qian a68403d090 Add application/x-typescript mime type support 2018-10-28 11:18:53 -07:00
Kitson Kelly 2cfa608324 Support CheckJS 2018-10-24 15:29:30 -07:00
Ryan Dahl a4fb5175ce
Add node_tcp target to http_benchmark. (#1074) 2018-10-23 15:02:30 -07:00
Ryan Dahl 5cf37c2f20 Revert "Support CheckJS"
Broken in master.

This reverts commit dd230d520b.
2018-10-23 07:07:17 -07:00
Kitson Kelly dd230d520b Support CheckJS 2018-10-23 06:01:11 -07:00
Kitson Kelly 8ef7da2611 Enforce media types 2018-10-23 04:48:00 -07:00
Kitson Kelly 64f0dfd50e Improve globals for runtime type library 2018-10-22 19:37:38 -07:00
Ryan Dahl c61a0f2f84 First pass at http benchmark. 2018-10-16 09:37:38 -04:00
Kitson Kelly 25c97962f4 Update to TypeScript 3.1 and ts-simple-ast 17 (#980) 2018-10-15 12:47:48 -04:00
Kevin (Kun) "Kassimo" Qian 1840a19713 Remove deno name assumption from tests 2018-10-13 19:45:01 -04:00
Kevin (Kun) "Kassimo" Qian 45d3b8955d Fix promise reject issue (#936) 2018-10-12 14:22:52 -04:00
Kitson Kelly ec402c6932 Replace globals.d.ts with lib.deno_runtime.d.ts 2018-10-11 20:29:43 -04:00
Ryan Dahl c814d5a914
Add throughput benchmark (#961) 2018-10-11 16:55:22 -04:00
Kevin (Kun) "Kassimo" Qian 888824c617 Add redirect follow feature (#934) 2018-10-09 20:31:06 -04:00
Kevin (Kun) "Kassimo" Qian 2b8cee9a49 Check thrown type, print String(...) if not instance of error (#939)
Fixes #935
2018-10-08 11:36:09 -04:00
Kevin (Kun) "Kassimo" Qian f1989c68a0 Add failing test for #919. 2018-10-06 20:24:47 -04:00
Chris Bystrek 6a649012bc Changed tools/lint.py to lint the entire js and tests directories. (#900)
* Changed tools/lint.py to lint the entire js and tests directorys and sub directories, currently it was pointing at tsconfig and would only lint files that were part of js/main.ts or node_modules/typescript/lib/lib.esnext.d.ts and their dependencies

* Broke the typescript linting out into separate steps for the main typescript programing and tests.

* Fixed linting issues in ts tests.
2018-10-05 07:29:55 -04:00
Kevin (Kun) "Kassimo" Qian eba58b7188 Guess extensions on extension not provided (#859)
Fixes #857
2018-10-02 12:38:45 -04:00
Ryan Dahl bcbbee7399 Adds basic File I/O and FD table.
Adds deno.stdin, deno.stdout, deno.stderr, deno.open(), deno.write(),
deno.read(), deno.Reader, deno.Writer, deno.copy().

Fixes #721. tests/cat.ts works.
2018-09-28 20:53:33 -04:00
Ryan Dahl 3afc0b8482 fbs_util.ts -> dispatch.ts
And send() -> sendSync()
2018-09-10 00:14:28 -04:00
Ryan Dahl e2a285b871 Better NotFound error handling in CodeFetch
throwResolutionError was swallowing unrelated errors.
2018-09-09 23:12:22 -04:00
Kitson Kelly 9101fd1493 Cleanup public API of DenoCompiler 2018-09-06 18:31:32 -04:00
Ryan Dahl e4990804fa Improve module resolution.
Windows can't handle ":" in path names, so we use a special directory
format .deno/deps/localhost_PORT4545/ to represent hosts with
non-default ports.

Fixes #645.
2018-09-05 22:27:23 -04:00
Kitson Kelly 10dc71133a Mark APIs at internal and include JSDoc in types 2018-09-05 08:45:55 -04:00
Kitson Kelly f83aee02e6 Bundle most types into globals.d.ts (#642) 2018-09-01 10:45:26 -04:00
Ryan Dahl d8d5c421c3 Support https imports.
Adds hyper-rustls to the build.

Use ring for sha1 instead of "ssh1" crate.

Fixes #528.
2018-08-30 08:29:28 -04:00
Kitson Kelly 54aefa2886 Two-pass module evaluation.
Plus changes to tests to accomodate.
2018-08-28 08:44:34 -04:00
Kitson Kelly 9960b1d22b Add duplicate import test 2018-08-28 08:44:34 -04:00
Kitson Kelly 59231d74b5 Improve DenoCompiler.makeDefine and localRequire 2018-08-23 17:55:22 -04:00
Ryan Dahl e2f9b0e6fd First pass at HTTP imports
Implement --reload

Integrate hyper errors into DenoError

In collaboration with Tommy Savaria <tommy.savaria@protonmail.ch>
2018-08-23 09:41:08 -04:00
Ryan Dahl e7cab71574
runtime.ts refactor into compiler.ts (#564)
Adds compiler_test.ts
2018-08-22 17:17:26 -04:00
Ryan Dahl 790baae673 Expose deno.exit() and add test. 2018-08-21 18:34:56 -04:00
Ryan Dahl 868e8d8866 First pass at fetch()
With help from Thomas Ghysels <info@thomasg.be>
2018-08-20 16:53:39 -04:00
Yoshiya Hinosawa 565a21eb0e chore: format files in tests/ 2018-08-17 12:43:21 -04:00
Ryan Dahl 4772c14d12 Add async tests from prototype 2018-08-11 09:02:07 -07:00
Ryan Dahl 89eee51f07 Use unit_tests for readFileSync testing. 2018-08-11 09:02:07 -07:00
Kitson Kelly 9be36ffbf8 Add error tests 2018-08-10 11:50:45 -07:00
Ryan Dahl 413bcf2042 Add readFileSync 2018-08-09 14:27:46 -07:00
Ryan Dahl fb87cb38ec
First pass at setTimeout with Tokio (#434) 2018-08-09 12:17:08 -07:00
Ryan Dahl c7c6203e61
Source map support (#429)
This change increases size:
out/debug/obj/libdeno/from_snapshot.o  19M -> 34M
out/release/deno                       32M -> 47M
2018-08-02 13:13:32 -04:00
Ryan Dahl 7fe656f4b9 Add 005_more_imports.ts
And run check_output_test in order.
2018-08-02 12:49:40 -04:00
Ryan Dahl 57c52a83a0 Add tests/003_relative_import.ts 2018-07-29 00:22:39 -04:00
Ryan Dahl dff5c16e85
Add tools/test.py test runner. (#384) 2018-07-21 19:08:24 -04:00