mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (c) 2012 Ecma International.  All rights reserved.
 | 
						|
// This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
/*---
 | 
						|
es5id: 13.2-18-1
 | 
						|
description: >
 | 
						|
    Function Object has 'prototype' as its own property, it is not
 | 
						|
    enumerable and does not invoke the setter defined on
 | 
						|
    Function.prototype (Step 18)
 | 
						|
includes: [propertyHelper.js]
 | 
						|
---*/
 | 
						|
 | 
						|
try {
 | 
						|
    var getFunc = function () {
 | 
						|
        return 100;
 | 
						|
    };
 | 
						|
 | 
						|
    var data = "data";
 | 
						|
    var setFunc = function (value) {
 | 
						|
        data = value;
 | 
						|
    };
 | 
						|
    Object.defineProperty(Function.prototype, "prototype", {
 | 
						|
        get: getFunc,
 | 
						|
        set: setFunc,
 | 
						|
        configurable: true
 | 
						|
    });
 | 
						|
 | 
						|
    var fun = function () { };
 | 
						|
 | 
						|
    assert.notSameValue(fun.prototype, 100);
 | 
						|
    assert.sameValue(fun.prototype.toString(), "[object Object]");
 | 
						|
 | 
						|
    verifyNotEnumerable(fun, "prototype");
 | 
						|
    verifyWritable(fun, "prototype");
 | 
						|
    verifyNotConfigurable(fun, "prototype");
 | 
						|
 | 
						|
    assert.sameValue(data, "data");
 | 
						|
} finally {
 | 
						|
    delete Function.prototype.prototype;
 | 
						|
}
 |