| 'use strict'; | 
|   | 
| var GetIntrinsic = require('get-intrinsic'); | 
|   | 
| var $TypeError = GetIntrinsic('%TypeError%'); | 
|   | 
| var DefineOwnProperty = require('../helpers/DefineOwnProperty'); | 
|   | 
| var FromPropertyDescriptor = require('./FromPropertyDescriptor'); | 
| var IsDataDescriptor = require('./IsDataDescriptor'); | 
| var IsPropertyKey = require('./IsPropertyKey'); | 
| var SameValue = require('./SameValue'); | 
| var Type = require('./Type'); | 
|   | 
| // https://ecma-international.org/ecma-262/6.0/#sec-createmethodproperty | 
|   | 
| module.exports = function CreateMethodProperty(O, P, V) { | 
|     if (Type(O) !== 'Object') { | 
|         throw new $TypeError('Assertion failed: Type(O) is not Object'); | 
|     } | 
|   | 
|     if (!IsPropertyKey(P)) { | 
|         throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); | 
|     } | 
|   | 
|     var newDesc = { | 
|         '[[Configurable]]': true, | 
|         '[[Enumerable]]': false, | 
|         '[[Value]]': V, | 
|         '[[Writable]]': true | 
|     }; | 
|     return DefineOwnProperty( | 
|         IsDataDescriptor, | 
|         SameValue, | 
|         FromPropertyDescriptor, | 
|         O, | 
|         P, | 
|         newDesc | 
|     ); | 
| }; |