⌈⌋ ⎇ branch:  Bitrhythm


Hex Artifact Content

Artifact dd651c6bc28cc58e39e9d977ab6c62ce9ad7f25a0191b76b2d30effc97f20b17:


0000: 69 6d 70 6f 72 74 20 65 78 74 65 6e 64 20 66 72  import extend fr
0010: 6f 6d 20 27 2e 2f 65 78 74 65 6e 64 27 0a 0a 2f  om './extend'../
0020: 2a 2a 0a 20 2a 20 48 65 6c 70 65 72 20 66 75 6e  **. * Helper fun
0030: 63 74 69 6f 6e 20 74 6f 20 73 65 74 20 61 6e 20  ction to set an 
0040: 69 6d 6d 75 74 61 62 6c 65 20 70 72 6f 70 65 72  immutable proper
0050: 74 79 0a 20 2a 20 40 70 61 72 61 6d 20 20 20 7b  ty. * @param   {
0060: 20 4f 62 6a 65 63 74 20 7d 20 65 6c 20 2d 20 6f   Object } el - o
0070: 62 6a 65 63 74 20 77 68 65 72 65 20 74 68 65 20  bject where the 
0080: 6e 65 77 20 70 72 6f 70 65 72 74 79 20 77 69 6c  new property wil
0090: 6c 20 62 65 20 73 65 74 0a 20 2a 20 40 70 61 72  l be set. * @par
00a0: 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20  am   { String } 
00b0: 6b 65 79 20 2d 20 6f 62 6a 65 63 74 20 6b 65 79  key - object key
00c0: 20 77 68 65 72 65 20 74 68 65 20 6e 65 77 20 70   where the new p
00d0: 72 6f 70 65 72 74 79 20 77 69 6c 6c 20 62 65 20  roperty will be 
00e0: 73 74 6f 72 65 64 0a 20 2a 20 40 70 61 72 61 6d  stored. * @param
00f0: 20 20 20 7b 20 2a 20 7d 20 76 61 6c 75 65 20 2d     { * } value -
0100: 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 6e 65   value of the ne
0110: 77 20 70 72 6f 70 65 72 74 79 0a 20 2a 20 40 70  w property. * @p
0120: 61 72 61 6d 20 20 20 7b 20 4f 62 6a 65 63 74 20  aram   { Object 
0130: 7d 20 6f 70 74 69 6f 6e 73 20 2d 20 73 65 74 20  } options - set 
0140: 74 68 65 20 70 72 6f 70 65 72 79 20 6f 76 65 72  the propery over
0150: 72 69 64 69 6e 67 20 74 68 65 20 64 65 66 61 75  riding the defau
0160: 6c 74 20 6f 70 74 69 6f 6e 73 0a 20 2a 20 40 72  lt options. * @r
0170: 65 74 75 72 6e 73 20 7b 20 4f 62 6a 65 63 74 20  eturns { Object 
0180: 7d 20 2d 20 74 68 65 20 69 6e 69 74 69 61 6c 20  } - the initial 
0190: 6f 62 6a 65 63 74 0a 20 2a 2f 0a 65 78 70 6f 72  object. */.expor
01a0: 74 20 64 65 66 61 75 6c 74 20 66 75 6e 63 74 69  t default functi
01b0: 6f 6e 20 64 65 66 69 6e 65 28 65 6c 2c 20 6b 65  on define(el, ke
01c0: 79 2c 20 76 61 6c 75 65 2c 20 6f 70 74 69 6f 6e  y, value, option
01d0: 73 29 20 7b 0a 20 20 4f 62 6a 65 63 74 2e 64 65  s) {.  Object.de
01e0: 66 69 6e 65 50 72 6f 70 65 72 74 79 28 65 6c 2c  fineProperty(el,
01f0: 20 6b 65 79 2c 20 65 78 74 65 6e 64 28 7b 0a 20   key, extend({. 
0200: 20 20 20 76 61 6c 75 65 2c 0a 20 20 20 20 65 6e     value,.    en
0210: 75 6d 65 72 61 62 6c 65 3a 20 66 61 6c 73 65 2c  umerable: false,
0220: 0a 20 20 20 20 77 72 69 74 61 62 6c 65 3a 20 66  .    writable: f
0230: 61 6c 73 65 2c 0a 20 20 20 20 63 6f 6e 66 69 67  alse,.    config
0240: 75 72 61 62 6c 65 3a 20 74 72 75 65 0a 20 20 7d  urable: true.  }
0250: 2c 20 6f 70 74 69 6f 6e 73 29 29 0a 20 20 72 65  , options)).  re
0260: 74 75 72 6e 20 65 6c 0a 7d                       turn el.}