Commit graph

528 commits

Author SHA1 Message Date
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