Commit Graph

79 Commits

Author SHA1 Message Date
Christopher Blappert
0112cb0055 singlePass, debugNames options and cleanup of command line flags (#421)
* singlePass, debugNames options and cleanup of command line flags

* Bugfix - boolean options were being set incorrectly

* Accidentally committed debug logging, removing that

* Responding to comments

* Responding to more comments
2017-04-19 13:52:30 -07:00
Nikolai Tillmann
e3af9a6084 Removing another redundant section. 2017-04-19 13:37:15 -07:00
Nikolai Tillmann
a9ae897b09 Updating README file
- Removing redundant information that's more nicely presented in gh-pages
- Adding information about how to edit/update gh-pages
2017-04-19 13:37:15 -07:00
Nikolai Tillmann
702210f0fd Captured variables
that are referenced by residual functions
and that possibly hold objects
need to be treated as locations, not values that can be re-created on-the-fly,
as the object identity may be observed.

Added regression test.
2017-04-18 17:41:46 -07:00
Nikolai Tillmann
97ee0ea0a2 Removing dead code. 2017-04-18 17:38:14 -07:00
Nikolai Tillmann
23d67cfd2a After manually reviewing all possible behaviors of StrictEqualityComparison,
I conclude that it will never execute user code, throw an exception, or trigger any other side effects.
Therefore, we can always allow === and !== as abstract operations.

Adding test case.
2017-04-18 17:38:14 -07:00
Christopher Blappert
5238bb888a Fixing invariant (#420) 2017-04-18 15:58:31 -07:00
Herman Venter
3741443dd3 Break completions for switch (#423) 2017-04-18 15:56:18 -07:00
Herman Venter
90b04fc703 Fix unlabelled break (#419) 2017-04-18 13:57:23 -07:00
Herman Venter
a3a91c738e Fail tests that let non throw abrupt completions escape (#418) 2017-04-18 10:24:45 -07:00
Herman Venter
0bdd50ae05 Fix includesValueNotOfType (#417) 2017-04-17 19:19:38 -07:00
Herman Venter
fb14d00846 Join new properties with empty rather than undefined (#414) 2017-04-17 14:32:18 -07:00
Nikolai Tillmann
f99e4b4a75 Fix recent regression that broken cycle breaking in the presence of conditional deletion. 2017-04-17 10:49:31 -07:00
Herman Venter
c3a0bfed32 Always use undefined to mark internal property as missing (#401)
* Always use undefined to mark internal property as missing

* Update ObjectProto_toString.js
2017-04-17 10:36:36 -07:00
Christopher Blappert
67727b0398 Added checking of flow profile output to detect_bad_deps (#409) 2017-04-17 10:31:06 -07:00
Sahand Saba
22059659d8 Check if tests are finished at the end (#407)
The result of the very last test is currently ignored. In particular, if
a single test is ever run, the output always shows 0/0 success.
2017-04-14 17:06:07 -07:00
Herman Venter
674052c7ee Special case non array objects with Array.prototype as prototype (#408) 2017-04-14 15:50:20 -07:00
Herman Venter
a485b2531f Special case serialization of Number objects (#406) 2017-04-14 15:49:32 -07:00
Christopher Blappert
1ef90a22e9 Break ecma deps (#400)
* Refactor realm constructor

* Refactor types.js to not depend on methods/

* Fix errors, add verifier to prevent cycles

* Fixed comments

* Fixing tests

* Fix merge bug
2017-04-14 15:09:34 -07:00
Nikolai Tillmann
5a8113463c Also fixing issue where array elements that are accessor properties didn't get serialized properly. 2017-04-14 11:02:26 -07:00
Nikolai Tillmann
079a4a48d4 Fixing Lint issue. 2017-04-14 11:02:26 -07:00
Nikolai Tillmann
936ab0ca4a We didn't generate the right code for conditionally deleted properties.
This fixes the issue by checking for __empty, and then issuing delete statements.
Added tests for objects, arrays, and other properties (in particular on functions).
2017-04-14 11:02:26 -07:00
Herman Venter
fd8d3c4f63 throw or return introspection completions, as appropriate (#404) 2017-04-14 10:32:27 -07:00
Nikolai Tillmann
f797be8225 Fixing Lint issues. 2017-04-13 20:16:28 -07:00
Nikolai Tillmann
293079c67b modules.initializeMoreModules has no (indirect) dependency on the serializer anymore.
Thus, move it forward, and avoid doing a useless serialization pass (which was needed
earlier as that was the way we would find module ids in the residual program via the visitor).
2017-04-13 20:16:28 -07:00
Nikolai Tillmann
c2bec2ee52 Consolidate computation of module ids in modules.js
Get rid of __annotate concept, as it's not needed anymore.
2017-04-13 20:16:28 -07:00
Herman Venter
0aba33b6a4 Do not throw introspection errors out of evaluateCompletion (#399) 2017-04-13 17:23:11 -07:00
Herman Venter
d6d6b69dd7 Improve error messages for prepack failures (#394) 2017-04-13 15:58:46 -07:00
Herman Venter
adf0d255b5 Move throwIntrospectionError from Value to AbstractValue (#393) 2017-04-13 10:03:37 -07:00
Herman Venter
78fd2e66d0 compose possibly normal returns (#392) 2017-04-12 18:28:49 -07:00
Nikolai Tillmann
945c180bc0 Delaying getting an id for a value until it's really needed.
It used to be obtained early, even if it wasn't needed in the end.
This minimizes the number of value references,
up to the point where there's only a single reference to a value
and no id is generated for it at all.
2017-04-12 18:02:10 -07:00
Nikolai Tillmann
f7b39536f5 Remove dead line. 2017-04-12 17:58:24 -07:00
Nikolai Tillmann
70694698fd Fold __ReadOnlyError into __IntrospectionError. 2017-04-12 17:58:24 -07:00
Nikolai Tillmann
102b90df68 Rename CallObserver to Tracer.
Make all methods trivial and not throw --- it's really a base class, not an abstract class.
Make it more general by also adding tracing events for partial evaluation.
Allow for many tracers being active.
Rename logCalls to trace.
2017-04-12 17:05:33 -07:00
Nikolai Tillmann
fc08285970 Many strict-only tests involving eval check if certain SyntaxErrors are thrown.
Some of those would require changes to Babel to support properly, and some we should handle ourselves in Prepack some day.
But for now, ignore.
2017-04-12 17:04:24 -07:00
Herman Venter
4f28bfeb18 Complete stack traces for errors (#387) 2017-04-12 14:57:18 -07:00
Nikolai Tillmann
a0d828dd47 Adding ability to observe call tree. 2017-04-12 14:17:37 -07:00
Christopher Blappert
6d2fa4978e Abstract functions (#385)
* Add support for __abstract('function')

* Addressed comments
2017-04-12 11:42:21 -07:00
Nikolai Tillmann
7b59027d7c Further splitting up serializer:
- Separating out logging (and tryQuery which only exists to guard and log dangerous accesses)
- Separating out all module-related logic
2017-04-12 11:18:42 -07:00
Chris Blappert
51504d33cd Improving string for invariant 2017-04-12 11:08:30 -07:00
Chris Blappert
fa1ac24d80 Make invariants also print something about what triggered them 2017-04-12 11:08:30 -07:00
Chris Blappert
d79c5bcf48 Add support for __abstract('function') 2017-04-12 11:08:30 -07:00
Nikolai Tillmann
5ffe879394 Only print "native" stack trace when running in debug mode.
Make sure we don't crash on syntax errors.
2017-04-11 15:54:28 -07:00
Nikolai Tillmann
4ff07e6685 Splitting up serializer into types/serializer/visitors. Adding Flow annotations as needed at module boundaries. 2017-04-11 10:30:46 -07:00
John Allen
89912aa5be Merge pull request #371 from facebook/fix_array_props
Include array properties outside of 0-length range (#356)
2017-04-11 08:28:21 -07:00
John Allen
7d397cdd48 Include array properties outside of 0-length range (#356) 2017-04-10 18:45:38 -07:00
Nikolai Tillmann
dc166cbbf5 Mechanical search+replace renaming of everything relating to serializer. 2017-04-10 18:00:47 -07:00
Herman Venter
f79ee08632 Do not compose introspection error completions (#368) 2017-04-10 17:50:33 -07:00
Nikolai Tillmann
1b24b47379 Harmonize spelling in test. 2017-04-10 16:53:51 -07:00
Nikolai Tillmann
8a7ceff111 Harmonize spelling to American spelling (except the serializer, that's handled separately). 2017-04-10 16:18:42 -07:00