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