Remove ES_NEXT macro (#4915)

- remove all '#JERRY_ESNEXT' macro
- remove 5.1 build profile, update test runner accordingly (Note: all builtins are turn on by default)
- move tests from tests/jerry/esnext into tests/jerry, concatenate files with same names
- add skiplist to some snapshot tests that were supported only in 5.1
- fix doxygen issues that were hidden before (bc. of es.next macro)

Co-authored-by: Martin Negyokru negyokru@inf.u-szeged.hu
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi aszilagy@inf.u-szeged.hu
This commit is contained in:
Szilagyi Adam
2022-01-31 16:46:00 +01:00
committed by GitHub
parent 76403606d0
commit 4924f9fd31
973 changed files with 1902 additions and 8240 deletions
+136
View File
@@ -207,3 +207,139 @@ assert(prop1_desc.value === 1);
assert(prop1_desc.writable === true);
assert(prop3_desc.value === 4);
assert(prop3_desc.writable === true);
var object = {};
var symbol = Symbol("symbol");
Object.defineProperties(object, {
"foo": {
value: true,
writable: true
},
[symbol]: {
value: "a symbol",
configurable: true
}
});
assert (object.foo === true);
assert (object[symbol] === "a symbol");
try {
Object.defineProperties(undefined, {
[symbol]: {
value: "a symbol",
writable: true
}
});
assert (false);
} catch (e) {
assert (e instanceof TypeError);
}
// If one of the properties is wrong than it shouldn't update the object.
var obj2 = {
a: 5
};
try {
Object.defineProperties(obj2, {
"foo": {
value: true,
writable: true
},
[symbol]: {
value: "a symbol",
set: 3
}
});
assert (false);
} catch (e) {
assert (e instanceof TypeError);
assert (obj2.foo === undefined);
assert (obj2[symbol] === undefined);
assert (obj2.a === 5);
}
// Define accessors
var object = {};
Object.defineProperties(object, {
"foo": {
value: 42,
writable: true,
},
[symbol]: {
get: function() { return this.foo },
set: function(v) { this.foo = v }
}
});
assert (object[symbol] === 42);
object[symbol] = "baz";
assert (object[symbol] === "baz");
// Define get method which throws error
var object = {};
var props = {
[symbol]: {
value: 3,
writable: true
},
get bar() {
throw new TypeError("foo");
return { value : 2, writable : true };
},
};
try {
Object.defineProperties(object, props);
assert (false);
} catch (e) {
assert (e instanceof TypeError);
assert (e.message === "foo");
}
// Define get method which deletes a property
var object = {};
Object.defineProperties(object, {
"foo": {
value: 42,
writable: true,
},
[symbol]: {
value: "a symbol",
configurable: true
},
"bar": {
get: function() {
delete this[symbol];
return this.foo;
},
}
});
assert (object[symbol] === "a symbol");
assert (object.bar === 42);
assert (object[symbol] === undefined);
var object = {};
var props = {
[symbol]: {
value: "a symbol",
configurable: true
},
get bar() {
delete props[symbol];
delete props.prop1;
return { value : 2, writable : true };
},
prop1: {
value: 3,
writable: true,
},
};
Object.defineProperties(object, props);
var bar_desc = Object.getOwnPropertyDescriptor(object, 'bar');
assert(bar_desc.value === 2);
assert(bar_desc.writable === true);
assert(object.prop1 === undefined);
assert(object[symbol] === undefined);