diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/test262/built-ins/Object/defineProperty/15.2.3.6-4-591.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/built-ins/Object/defineProperty/15.2.3.6-4-591.js')
-rw-r--r-- | js/src/tests/test262/built-ins/Object/defineProperty/15.2.3.6-4-591.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Object/defineProperty/15.2.3.6-4-591.js b/js/src/tests/test262/built-ins/Object/defineProperty/15.2.3.6-4-591.js new file mode 100644 index 0000000000..7fb8751e2e --- /dev/null +++ b/js/src/tests/test262/built-ins/Object/defineProperty/15.2.3.6-4-591.js @@ -0,0 +1,75 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 15.2.3.6-4-591 +description: > + ES5 Attributes - Fail to update value of property of + [[Proptotype]] internal property (Object.create) +includes: [propertyHelper.js] +---*/ + +var appointment = {}; + +var data1 = 1001; +Object.defineProperty(appointment, "startTime", { + get: function() { + return data1; + }, + enumerable: false, + configurable: false +}); +var data2 = "NAME"; +Object.defineProperty(appointment, "name", { + get: function() { + return data2; + }, + enumerable: false, + configurable: true +}); + +var meeting = Object.create(appointment); +var data3 = "In-person meeting"; +Object.defineProperty(meeting, "conferenceCall", { + get: function() { + return data3; + }, + enumerable: false, + configurable: false +}); + +var teamMeeting = Object.create(meeting); + +verifyNotWritable(teamMeeting, "name", "nocheck"); +verifyNotWritable(teamMeeting, "startTime", "nocheck"); +verifyNotWritable(teamMeeting, "conferenceCall", "nocheck"); + +try { + teamMeeting.name = "IE Team Meeting"; +} catch (e) { + assert(e instanceof TypeError); +} + +try { + var dateObj = new Date("10/31/2010 08:00"); + teamMeeting.startTime = dateObj; +} catch (e) { + assert(e instanceof TypeError); +} + +try { + teamMeeting.conferenceCall = "4255551212"; +} catch (e) { + assert(e instanceof TypeError); +} + + +assert(!teamMeeting.hasOwnProperty("name")); +assert(!teamMeeting.hasOwnProperty("startTime")); +assert(!teamMeeting.hasOwnProperty('conferenceCall')); + +assert.sameValue(teamMeeting.name, "NAME"); +assert.sameValue(teamMeeting.startTime, 1001); +assert.sameValue(teamMeeting.conferenceCall, "In-person meeting"); + +reportCompare(0, 0); |