Commit message (Collapse) | Author | Age | Lines | |
---|---|---|---|---|
* | Align `instanceof` with the final ES6 spec. | wolfbeast | 2019-02-07 | -10/+7 |
| | ||||
* | Remove telemetry leftovers from JS engine. | adeshkp | 2019-01-30 | -88/+0 |
| | ||||
* | Reduce number of allocations in AutoStopwatch | David Teller | 2019-01-29 | -5/+20 |
| | | | | | | | | | | | | | | | This patch fixes two related issues. 1. The AutoStopwatch uses a stack-allocated `mozilla::Vector` to communicate with its callback during each compartment switch. This vector was designed to allow its contents to be stack-allocated but they turned out to be accidentally heap-allocated. 2. During each tick, the stopwatch fills a vector `recentGroups_`. This vector always started with minimal capacity and had to grow repeatedly as groups were added, causing repeated reallocations. This patch preallocates `recentGroups_` to have the same capacity as the previous tick. We expect that this should eventually reach a stable size that closely matches the actual needs of the process. | |||
* | Revert "Reduce number of allocations in AutoStopwatch" | wolfbeast | 2019-01-29 | -17/+7 |
| | | | | This reverts commit 3476c1d60ec29c5497123194acd7a9310b1023d2. | |||
* | Reduce number of allocations in AutoStopwatch | David Teller | 2019-01-28 | -7/+17 |
| | | | | | | | | | | | | | | | This patch fixes two related issues. 1. The AutoStopwatch uses a stack-allocated `mozilla::Vector` to communicate with its callback during each compartment switch. This vector was designed to allow its contents to be stack-allocated but they turned out to be accidentally heap-allocated. 2. During each tick, the stopwatch fills a vector `recentGroups_`. This vector always started with minimal capacity and had to grow repeatedly as groups were added, causing repeated reallocations. This patch preallocates `recentGroups_` to have the same capacity as the previous tick. We expect that this should eventually reach a stable size that closely matches the actual needs of the process. | |||
* | Telemetry: Remove stubs and related code | adeshkp | 2019-01-12 | -7/+0 |
| | ||||
* | Use canonical function in TypeNewScript::rollbackPartiallyInitializedObjects. | wolfbeast | 2018-12-13 | -7/+13 |
| | ||||
* | Rename TypeSet::clone to TypeSet::cloneIntoUninitialized to indicate that it ↵ | trav90 | 2018-09-19 | -9/+11 |
| | | | | | | freshly initializes the TemporaryTypeSet* provided to it. Also removes existing code that, quite unnecessarily, partly initialized that argument. | |||
* | Don't use PodCopy/PodMove to implement typed-array element-to-element copying | trav90 | 2018-09-19 | -4/+17 |
| | | | | Standard std::copy and std::copy_n are readily optimized to the same thing, and they don't have a non-obvious requirement that the type being copied be trivial. | |||
* | Give uint8_clamped a defaulted (and also trivial) default constructor, copy ↵ | trav90 | 2018-09-19 | -6/+3 |
| | | | | | | constructor, and copy-assignment operator. This also allows uint8_clamped to be permissibly memmove'd and memcpy'd. | |||
* | Stop using PodZero in several places to initialize values of non-trivial type | trav90 | 2018-09-12 | -29/+33 |
| | ||||
* | Fix build bustage | trav90 | 2018-09-02 | -1/+1 |
| | ||||
* | Call the relevant scope-data constructor when allocating it, and poison/mark ↵ | trav90 | 2018-09-02 | -26/+53 |
| | | | | as undefined the memory for the trailing array of BindingNames, ratther than impermissibly PodZero-ing non-trivial classes. | |||
* | Convert the trailing array of BindingNames at the end of the various kinds ↵ | trav90 | 2018-09-02 | -13/+46 |
| | | | | of scope data into raw unsigned chars into which those BindingNames are placement-new'd, rather than memcpy-ing non-trivial classes around and failing to comply with the C++ object model | |||
* | Simplify HeapSlot to make it trivially copyable | trav90 | 2018-08-12 | -6/+4 |
| | | | | This removes the constructors, which were never called since we allocate arrays of HeapSlot with pod_malloc. The destructor is only ever called explicitly since we free this memory with js_free so it has been renamed to destroy(). Also removed is an unused manual barrier. | |||
* | Avoid using memcpy on HeapSlot that is not trivially copyable. | trav90 | 2018-08-12 | -4/+7 |
| | ||||
* | Fix Build Bustage - with "--enable-debug" | janekptacijarabaci | 2018-07-12 | -0/+3 |
| | ||||
* | Bug 1465108 - Use function pointers rather than virtual run method for GC ↵ | Jon Coppeard | 2018-06-07 | -2/+2 |
| | | | | parallel tasks r=sfink a=abillings a=RyanVM | |||
* | Refactor structured clone JSAPI to prevent mismatched scopes. | wolfbeast | 2018-06-07 | -208/+181 |
| | | | | Roll-up of bugs 1442722, 1455071, 1433642, 1456604 and 1458320. | |||
* | Change inlining of intrinsics. | wolfbeast | 2018-06-07 | -12/+33 |
| | ||||
* | Make InitRuntimeNumberState's return type reflect its infallible nature. | wolfbeast | 2018-05-04 | -2/+1 |
| | ||||
* | Issue #325 Part 14: Remove EXPOSE_INTL_API conditionals. | wolfbeast | 2018-05-04 | -31/+1 |
| | ||||
* | Issue #325 Part 5: Remove non-Intl legacy code paths from js. | wolfbeast | 2018-05-04 | -6/+2 |
| | ||||
* | Merge branch 'html_input_datetime_1' | wolfbeast | 2018-04-15 | -0/+1 |
|\ | | | | | | | This is almost everything needed for #162. | |||
| * | Bug 1287677 - Add mozIntl.getDisplayNames API | janekptacijarabaci | 2018-03-30 | -0/+1 |
| | | ||||
* | | Fix Value::isGCThing footgun, stop returning true for NullValue | trav90 | 2018-04-07 | -1/+1 |
|/ | ||||
* | Bug 1357075 - Pad a nop to unwind to the scope just before a destructuring ↵ | janekptacijarabaci | 2018-03-25 | -2/+14 |
| | | | | | | iterator close trynote Issue #74 | |||
* | Bug 1346862 - Fix IteratorClose due to non-local jumps being catchable by ↵ | janekptacijarabaci | 2018-03-25 | -0/+36 |
| | | | | | | try statements inside for-of Issue #74 | |||
* | Bug 1342553, Bug 1343072, Bug 1344753 (details in the description) | janekptacijarabaci | 2018-03-25 | -13/+39 |
| | | | | | | | | | | Bug 1342553 - Part 0.1: Use try-catch for IteratorClose in for-of Bug 1343072 - Update HasLiveStackValueAtDepth to follow the change in JSTRY_FOR_OF Bug 1344753 - Update for-of stack depth in ControlFlowGenerator::processWhileOrForInLoop Issue #74 | |||
* | Bug 1331585 - Allow falsy "done" values for IteratorClose due to exception ↵ | janekptacijarabaci | 2018-03-25 | -2/+3 |
| | | | | | | during array destructuring Issue #74 | |||
* | Bug 1147371: Implement calling IteratorClose and "return" on iterators in yield* | janekptacijarabaci | 2018-03-24 | -3/+22 |
| | | | | Issue #74 | |||
* | Bug 1147371: Implement IteratorClose for array destructuring | janekptacijarabaci | 2018-03-24 | -9/+30 |
| | | | | Issue #74 | |||
* | Bug 1147371: Rename allowContentSpread to allowContentIter | janekptacijarabaci | 2018-03-24 | -1/+1 |
| | | | | Issue #74 | |||
* | Bug 1147371: Implement IteratorClose for for-of | janekptacijarabaci | 2018-03-24 | -4/+16 |
| | | | | Issue #74 | |||
* | Bug 1204028: Evaluate LHS reference before RHS in destructuring | janekptacijarabaci | 2018-03-20 | -3/+18 |
| | | | | | Issue #73 [Depends on] Bug 1147371: Implement IteratorClose | |||
* | Add support for the function `name` property. | wolfbeast | 2018-03-20 | -20/+42 |
|\ | | | | | | | | | | | This resolves #78. Merged remote-tracking branch 'janek/js_function_name_1' | |||
| * | Part 1: Implement ES6 function name property semantics | janekptacijarabaci | 2018-03-19 | -16/+40 |
| | | | | | | | | Issue #78 | |||
| * | Bug 1320388: Move JSFunction::HAS_REST to JSScript and LazyScript | janekptacijarabaci | 2018-03-19 | -4/+2 |
| | | | | | | | | | | | | Issue #78 [Depends on] Bug 883377: Implement ES6 function "name" property semantics | |||
* | | Use ordinary object for RegExp prototype | janekptacijarabaci | 2018-03-19 | -3/+14 |
|/ | | | | Issue #77 | |||
* | Prototypes should be regular objects. | wolfbeast | 2018-03-19 | -40/+58 |
|\ | | | | | | | | | | | This resolves #76 Merged remote-tracking branch 'janek/js_error_ordinary-object_1' | |||
| * | Add TI for error properties assigned by the initial shape (follow up) | janekptacijarabaci | 2018-03-17 | -1/+1 |
| | | ||||
| * | Add TI for error properties assigned by the initial shape | janekptacijarabaci | 2018-03-17 | -2/+2 |
| | | ||||
| * | Handle the now ordinary error prototype object in stack | janekptacijarabaci | 2018-03-17 | -30/+40 |
| | | ||||
| * | Use ordinary objects for Error prototypes | janekptacijarabaci | 2018-03-17 | -8/+16 |
| | | ||||
* | | Remove strict arguments poison pill for "caller" property per ES2017 | wolfbeast | 2018-03-18 | -5/+1 |
|\ \ | | | | | | | | | | | | | | | | This resolves #79. Merged remote-tracking branch 'janek/js_strict_arguments_caller_removed_1' | |||
| * | | Remove strict arguments poison pill for "caller" property per ES2017 | janekptacijarabaci | 2018-03-18 | -5/+1 |
| |/ | ||||
* | | Correctly tokenize valid JS names when using code points outside of BMP range. | wolfbeast | 2018-03-18 | -13/+1015 |
|\ \ | | | | | | | | | | | | | | | | This resolves #72. Merged remote-tracking branch 'janek/js_variable_unicode_1' | |||
| * | | Correctly tokenize valid JS names when using Unicode mathematical ↵ | janekptacijarabaci | 2018-03-18 | -13/+1015 |
| |/ | | | | | | | | | | | alphanumeric symbols as variable name Issue https://github.com/MoonchildProductions/Pale-Moon/issues/1647 | |||
* | | Bug 755821: Function() should use the parser's argument parsing code | janekptacijarabaci | 2018-03-16 | -2/+7 |
| | | ||||
* | | Bug 1318017: Call GetPrototypeFromConstructor for generator/async function ↵ | janekptacijarabaci | 2018-03-16 | -6/+16 |
|/ | | | | | | | and Intl constructors [Depends on] Bug 755821: Function() should use the parser's argument parsing code |