summaryrefslogtreecommitdiffstats
path: root/js/src
Commit message (Collapse)AuthorAgeLines
* Bug 1334314 - Fix debug mode OSR exception handling for IteratorClose trynotesjanekptacijarabaci2018-03-25-9/+48
| | | | Issue #74
* Bug 1331585 - Allow falsy "done" values for IteratorClose due to exception ↵janekptacijarabaci2018-03-25-8/+25
| | | | | | during array destructuring Issue #74
* Bug 1341339 - Check for duplicates in processIteratorsjanekptacijarabaci2018-03-25-3/+15
| | | | Issue #74
* Bug 1338796 - Do not call iterator.return if iterator.throw is present in yield*janekptacijarabaci2018-03-25-132/+197
| | | | Issue #74
* Bug 1335996 - Make test for bug 1333946 more reliablejanekptacijarabaci2018-03-25-3/+5
| | | | Issue #74
* Bug 1333946 - Make IonBuilder::processIterators transitivejanekptacijarabaci2018-03-25-24/+27
| | | | Issue #74
* Bug 1322069 - Add TryEmitterjanekptacijarabaci2018-03-25-169/+341
| | | | Issue #74
* Bug 1334799 - Handle stack value in correct order when leaving for-of loop ↵janekptacijarabaci2018-03-25-7/+31
| | | | | | from finally block Issue #74
* Bug 1332881 - Handle stack value in correct order when leaving loop and ↵janekptacijarabaci2018-03-25-0/+60
| | | | | | try-finally Issue #74
* Bug 1332155 - Skip non-try-related trynotes when asserting jump targetsjanekptacijarabaci2018-03-25-1/+2
| | | | Issue #74
* Bug 1331444 - Keep iterators alive in Ion in for-of loops for IteratorClose ↵janekptacijarabaci2018-03-25-6/+22
| | | | | | due to exceptions Issue #74
* Bug 1147371: Always decompile argument names in self-hosted code in the ↵janekptacijarabaci2018-03-24-4/+28
| | | | | | caller frame Issue #74
* Bug 1147371: Implement JSOP_PICK and JSOP_UNPICK in the expression decompilerjanekptacijarabaci2018-03-24-1/+31
| | | | Issue #74
* Bug 1147371: Implement calling IteratorClose and "return" on iterators in yield*janekptacijarabaci2018-03-24-45/+232
| | | | Issue #74
* Bug 1147371: Implement IteratorClose for array destructuringjanekptacijarabaci2018-03-24-135/+322
| | | | Issue #74
* Bug 1147371: Convert self-hosted code that need to call IteratorClose to use ↵janekptacijarabaci2018-03-24-192/+27
| | | | | | for-of Issue #74
* Bug 1147371: Rename allowContentSpread to allowContentIterjanekptacijarabaci2018-03-24-12/+22
| | | | Issue #74
* Bug 1147371: Implement IteratorClose for for-ofjanekptacijarabaci2018-03-24-203/+704
| | | | Issue #74
* Bug 1204028: Evaluate LHS reference before RHS in destructuringjanekptacijarabaci2018-03-20-97/+1743
| | | | | Issue #73 [Depends on] Bug 1147371: Implement IteratorClose
* Bug 1322314 - Do not emit ParseNode twice in ↵janekptacijarabaci2018-03-20-139/+144
| | | | | | | BytecodeEmitter::emitDestructuringOpsArray Issue #73 [Depends on] Bug 1147371: Implement IteratorClose
* Bug 1322314 - Disallow emitting ParseNode twicejanekptacijarabaci2018-03-20-31/+6
| | | | | Issue #73 [Depends on] Bug 1147371: Implement IteratorClose
* Add support for the function `name` property.wolfbeast2018-03-20-184/+1033
|\ | | | | | | | | | | This resolves #78. Merged remote-tracking branch 'janek/js_function_name_1'
| * Follow up: A opening bracket { was added; Added "function()->explicitName()" ↵janekptacijarabaci2018-03-19-2/+2
| | | | | | | | | | | | instead of "function()->name()" Issue #78
| * Part 4: Fix existing testsjanekptacijarabaci2018-03-19-38/+39
| | | | | | | | Issue #87
| * Part 3: Support JSOP_SETFUNNAME in Baseline and Ionjanekptacijarabaci2018-03-19-0/+122
| | | | | | | | Issue #87
| * Part 2: Call NameFunctions after emittingjanekptacijarabaci2018-03-19-14/+15
| | | | | | | | Issue #78
| * Part 1: Implement ES6 function name property semanticsjanekptacijarabaci2018-03-19-81/+750
| | | | | | | | Issue #78
| * Bug 1317309: Throw a TypeError when passing a Symbol value to ToAtomjanekptacijarabaci2018-03-19-3/+45
| | | | | | | | | | | | Issue #78 [Depends on] Bug 883377: Implement ES6 function "name" property semantics
| * Bug 1320042: Rename BytecodeEmitter::emitConditionallyExecuted{SOMETHING} to ↵janekptacijarabaci2018-03-19-19/+18
| | | | | | | | | | | | | | | | BytecodeEmitter::emit{SOMETHING}InBranch Issue #78 [Depends on] Bug 883377: Implement ES6 function "name" property semantics
| * Bug 1320388: Move JSFunction::HAS_REST to JSScript and LazyScriptjanekptacijarabaci2018-03-19-37/+52
| | | | | | | | | | | | Issue #78 [Depends on] Bug 883377: Implement ES6 function "name" property semantics
* | Testsjanekptacijarabaci2018-03-19-5/+32
| | | | | | | | Issue #77
* | Use ordinary object for RegExp prototypejanekptacijarabaci2018-03-19-59/+98
| | | | | | | | Issue #77
* | Bug 1323868: Report object allocation failure when running off-main-threadjanekptacijarabaci2018-03-19-2/+11
|/ | | | | Issue #77 [Depends on] Bug 1192038: RegExp.prototype should be an ordinary object
* Prototypes should be regular objects.wolfbeast2018-03-19-124/+271
|\ | | | | | | | | | | 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)janekptacijarabaci2018-03-17-1/+1
| |
| * Bug 1320198: Land additional Error prototype testjanekptacijarabaci2018-03-17-0/+24
| |
| * Bug 1319952: Assertion failure: isNurseryAllocAllowed(), at ↵janekptacijarabaci2018-03-17-1/+2
| | | | | | | | js/src/gc/Allocator.cpp:79
| * Testsjanekptacijarabaci2018-03-17-0/+35
| |
| * Add TI for error properties assigned by the initial shapejanekptacijarabaci2018-03-17-2/+2
| |
| * Handle the now ordinary error prototype object in stackjanekptacijarabaci2018-03-17-31/+48
| |
| * Use ordinary objects for Error prototypesjanekptacijarabaci2018-03-17-91/+161
| |
* | Remove strict arguments poison pill for "caller" property per ES2017wolfbeast2018-03-18-18/+18
|\ \ | | | | | | | | | | | | | | | This resolves #79. Merged remote-tracking branch 'janek/js_strict_arguments_caller_removed_1'
| * | Remove strict arguments poison pill for "caller" property per ES2017janekptacijarabaci2018-03-18-18/+18
| |/
* | Correctly tokenize valid JS names when using code points outside of BMP range.wolfbeast2018-03-18-37/+1159
|\ \ | | | | | | | | | | | | | | | This resolves #72. Merged remote-tracking branch 'janek/js_variable_unicode_1'
| * | Correctly tokenize valid JS names when using Unicode mathematical ↵janekptacijarabaci2018-03-18-37/+1159
| |/ | | | | | | | | | | alphanumeric symbols as variable name Issue https://github.com/MoonchildProductions/Pale-Moon/issues/1647
* | Support ES6's "new function" constructwolfbeast2018-03-18-501/+897
|\ \ | | | | | | | | | | | | | | | This resolves #75. Merged remote-tracking branch 'janek/js_function_new_1'
| * | Bug 755821: Function() should use the parser's argument parsing codejanekptacijarabaci2018-03-16-451/+314
| | |
| * | Bug 1318017: Call GetPrototypeFromConstructor for generator/async function ↵janekptacijarabaci2018-03-16-53/+586
| |/ | | | | | | | | | | | | and Intl constructors [Depends on] Bug 755821: Function() should use the parser's argument parsing code
* | Merge branch 'ported-upstream'wolfbeast2018-03-18-40/+55
|\ \ | |/ |/|
| * Handle same-compartment wrappers in TypedArray methods.wolfbeast2018-03-17-40/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CallTypedArrayMethodIfWrapped (and the CallNonGeneric machinery throughout the engine) unwraps the `this` argument, but the other arguments are only rewrapped for the target compartment. The pattern being used before this patch to get the length of a TypedArray or possible TypedArray wrapper is: `callFunction(CallTypedArrayMethodIfWrapped, O, O, "TypedArrayLength")` The first `O` is the `this` value and the second is an argument. If `O` is a cross-compartment wrapper, this works fine. The first `O` is unwrapped, revealing the actual TypedArray object; the second `O` is rewrapped for that TypedArray's compartment, producing the same TypedArray. However, if `O` is a same-compartment wrapper, this doesn't work. The first `O` is unwrapped, revealing the actual TypedArray object in the same compartment; rewrapping the other `O` does nothing to it, since it is already an object in the target compartment. Thus TypedArrayLength receives a `this` value that's an unwrapped TypedArray, but an argument that is still a wrapper. The fix is to have CallTypedArrayMethodIfWrapped targets only expect `this` to be an unwrapped TypedArray.