Fix evaluation order with object spread (#11412)
* Fix object spread runtime semantics * limit this deoptimization * optimize empty objects * declare variables
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
var k = { a: 1, b: 2 };
|
||||
var o = { a: 3, ...k, b: k.a++ };
|
||||
|
||||
var pureA = {};
|
||||
var pureB = {};
|
||||
var pureC = {};
|
||||
var pureD = {};
|
||||
var pureE = {};
|
||||
|
||||
function impureFunc() {
|
||||
console.log('hello')
|
||||
}
|
||||
|
||||
var output = { ...pureA, get foo() {}, get bar() {}, ...pureB, ...pureC, ...impureFunc(), ...pureD, pureD }
|
||||
|
||||
var simpleOutput = { ...pureA, test: '1', ...pureB, }
|
||||
Reference in New Issue
Block a user