Index: test/webkit/function-prototype-descriptor.js |
diff --git a/test/webkit/concat-while-having-a-bad-time.js b/test/webkit/function-prototype-descriptor.js |
similarity index 64% |
copy from test/webkit/concat-while-having-a-bad-time.js |
copy to test/webkit/function-prototype-descriptor.js |
index dfda1e08a0b36194b787a44ee12a9693acd8aeaf..89a19e98bd21c544502da892002013f38173ec27 100644 |
--- a/test/webkit/concat-while-having-a-bad-time.js |
+++ b/test/webkit/function-prototype-descriptor.js |
@@ -22,10 +22,28 @@ |
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
description( |
-"Tests the behavior of Array.prototype.concat while the array is having a bad time due to one of the elements we are concatenating." |
+'Test for function.prototype\'s property descriptor.' |
); |
-Object.defineProperty(Array.prototype, 0, { writable: false }); |
-shouldBe("[42].concat()", "[42]"); |
+function test(func) |
+{ |
+ // test function.prototype has the correct attributes - writable, enumerable, non-configurable. |
+ descriptor = Object.getOwnPropertyDescriptor(func, 'prototype'); |
+ shouldBeTrue("descriptor['writable']"); |
+ shouldBeFalse("descriptor['enumerable']"); |
+ shouldBeFalse("descriptor['configurable']"); |
+} |
+// Test prototype's attributes are correct. |
+function a() {} |
+test(a); |
+// Test prototype's attributes are correct, if assigned without first having being accessed. |
+function b() {} |
+b.prototype = {}; |
+test(b); |
+ |
+// Given that prototype is non-configurable, defineProperty should not be able to assign a getter to it. |
+function c() {} |
+shouldThrow("Object.defineProperty(c, 'prototype', { get: function(){} })"); |
+test(c); |