/ cloudformation-templates / node_modules / aws-cdk / node_modules / es5-ext / lib / Object / descriptor.js
descriptor.js
1 'use strict'; 2 3 var isCallable = require('./is-callable') 4 , callable = require('./valid-callable') 5 , contains = require('../String/prototype/contains') 6 7 , d; 8 9 d = module.exports = function (dscr, value) { 10 var c, e, w; 11 if (arguments.length < 2) { 12 value = dscr; 13 dscr = null; 14 } 15 if (dscr == null) { 16 c = w = true; 17 e = false; 18 } else { 19 c = contains.call(dscr, 'c'); 20 e = contains.call(dscr, 'e'); 21 w = contains.call(dscr, 'w'); 22 } 23 24 return { value: value, configurable: c, enumerable: e, writable: w }; 25 }; 26 27 d.gs = function (dscr, get, set) { 28 var c, e; 29 if (isCallable(dscr)) { 30 set = (get == null) ? undefined : callable(get); 31 get = dscr; 32 dscr = null; 33 } else { 34 get = (get == null) ? undefined : callable(get); 35 set = (set == null) ? undefined : callable(set); 36 } 37 if (dscr == null) { 38 c = true; 39 e = false; 40 } else { 41 c = contains.call(dscr, 'c'); 42 e = contains.call(dscr, 'e'); 43 } 44 45 return { get: get, set: set, configurable: c, enumerable: e }; 46 };