⌈⌋ ⎇ branch:  Bitrhythm


Hex Artifact Content

Artifact 609aea3e1f372ba926611b811aa53e7be84bf4a8b302dd1c7fe0c8b166e70847:


0000: 69 6d 70 6f 72 74 20 67 65 74 50 72 6f 70 44 65  import getPropDe
0010: 73 63 72 69 70 74 6f 72 20 66 72 6f 6d 20 27 2e  scriptor from '.
0020: 2e 2f 6d 69 73 63 2f 67 65 74 2d 70 72 6f 70 2d  ./misc/get-prop-
0030: 64 65 73 63 72 69 70 74 6f 72 27 0a 69 6d 70 6f  descriptor'.impo
0040: 72 74 20 69 73 55 6e 64 65 66 69 6e 65 64 20 66  rt isUndefined f
0050: 72 6f 6d 20 27 2e 2f 69 73 2d 75 6e 64 65 66 69  rom './is-undefi
0060: 6e 65 64 27 0a 2f 2a 2a 0a 20 2a 20 43 68 65 63  ned'./**. * Chec
0070: 6b 20 77 68 65 74 68 65 72 20 6f 62 6a 65 63 74  k whether object
0080: 27 73 20 70 72 6f 70 65 72 74 79 20 63 6f 75 6c  's property coul
0090: 64 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 0a  d be overridden.
00a0: 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 4f 62   * @param   { Ob
00b0: 6a 65 63 74 20 7d 20 20 6f 62 6a 20 2d 20 73 6f  ject }  obj - so
00c0: 75 72 63 65 20 6f 62 6a 65 63 74 0a 20 2a 20 40  urce object. * @
00d0: 70 61 72 61 6d 20 20 20 7b 20 53 74 72 69 6e 67  param   { String
00e0: 20 7d 20 20 6b 65 79 20 2d 20 6f 62 6a 65 63 74   }  key - object
00f0: 20 70 72 6f 70 65 72 74 79 0a 20 2a 20 40 72 65   property. * @re
0100: 74 75 72 6e 73 20 7b 20 42 6f 6f 6c 65 61 6e 20  turns { Boolean 
0110: 7d 20 74 72 75 65 20 69 66 20 77 72 69 74 61 62  } true if writab
0120: 6c 65 0a 20 2a 2f 0a 65 78 70 6f 72 74 20 64 65  le. */.export de
0130: 66 61 75 6c 74 20 66 75 6e 63 74 69 6f 6e 20 69  fault function i
0140: 73 57 72 69 74 61 62 6c 65 28 6f 62 6a 2c 20 6b  sWritable(obj, k
0150: 65 79 29 20 7b 0a 20 20 63 6f 6e 73 74 20 64 65  ey) {.  const de
0160: 73 63 72 69 70 74 6f 72 20 3d 20 67 65 74 50 72  scriptor = getPr
0170: 6f 70 44 65 73 63 72 69 70 74 6f 72 28 6f 62 6a  opDescriptor(obj
0180: 2c 20 6b 65 79 29 0a 20 20 72 65 74 75 72 6e 20  , key).  return 
0190: 69 73 55 6e 64 65 66 69 6e 65 64 28 6f 62 6a 5b  isUndefined(obj[
01a0: 6b 65 79 5d 29 20 7c 7c 20 64 65 73 63 72 69 70  key]) || descrip
01b0: 74 6f 72 20 26 26 20 64 65 73 63 72 69 70 74 6f  tor && descripto
01c0: 72 2e 77 72 69 74 61 62 6c 65 0a 7d 0a           r.writable.}.