Combination of [try|catch|with] and controlflows works correctly

- add member m_outerLimitCount into class ControlFlowRecord to save tryStatementScopeCount of the jump destination

* fix bug in Array.prototype.concat()
 - It will check the length of the array overflows or not

* fix bug in setting __proto__
 - when setting __proto__ to non-object, non-null, non-undefined value, it should do nothing

Signed-off-by: Saebom Kim sae-bom.kim@samsung.com
This commit is contained in:
Saebom Kim 2017-03-28 16:49:28 +09:00
commit a904501b75
16 changed files with 379 additions and 386 deletions

View file

@ -115,6 +115,7 @@ bool ArrayObject::defineOwnProperty(ExecutionState& state, const ObjectPropertyN
while (newLen < oldLen) {
oldLen--;
bool deleteSucceeded = Object::deleteOwnProperty(state, ObjectPropertyName(state, Value(oldLen).toString(state)));
if (!deleteSucceeded) {
newLenDesc.setValue(Value(oldLen + 1));