flight-for-rails 1.0.8 → 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,555 +1,326 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
</div> <!-- /.select-menu-modal -->
|
329
|
-
</div> <!-- /.select-menu-modal-holder -->
|
330
|
-
</div> <!-- /.select-menu -->
|
331
|
-
|
332
|
-
</div> <!-- /.scope -->
|
333
|
-
|
334
|
-
<ul class="tabnav-tabs">
|
335
|
-
<li><a href="/kriskowal/es5-shim/tree/v2.0.0" class="selected tabnav-tab" highlight="repo_source">Files</a></li>
|
336
|
-
<li><a href="/kriskowal/es5-shim/commits/v2.0.0" class="tabnav-tab" highlight="repo_commits">Commits</a></li>
|
337
|
-
<li><a href="/kriskowal/es5-shim/branches" class="tabnav-tab" highlight="repo_branches" rel="nofollow">Branches <span class="counter ">5</span></a></li>
|
338
|
-
</ul>
|
339
|
-
|
340
|
-
</div>
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
</div>
|
349
|
-
</div><!-- /.repohead -->
|
350
|
-
|
351
|
-
<div id="js-repo-pjax-container" class="container context-loader-container" data-pjax-container>
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
<!-- blob contrib key: blob_contributors:v21:5905b5ac85f7affccb0e4543b93e25dd -->
|
356
|
-
<!-- blob contrib frag key: views10/v8/blob_contributors:v21:5905b5ac85f7affccb0e4543b93e25dd -->
|
357
|
-
|
358
|
-
|
359
|
-
<div id="slider">
|
360
|
-
<div class="frame-meta">
|
361
|
-
|
362
|
-
<p title="This is a placeholder element" class="js-history-link-replace hidden"></p>
|
363
|
-
|
364
|
-
<div class="breadcrumb">
|
365
|
-
<span class='bold'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/kriskowal/es5-shim/tree/v2.0.0" class="js-slide-to" data-branch="v2.0.0" data-direction="back" itemscope="url"><span itemprop="title">es5-shim</span></a></span></span><span class="separator"> / </span><strong class="final-path">es5-sham.min.js</strong> <span class="js-zeroclipboard zeroclipboard-button" data-clipboard-text="es5-sham.min.js" data-copied-hint="copied!" title="copy to clipboard"><span class="mini-icon mini-icon-clipboard"></span></span>
|
366
|
-
</div>
|
367
|
-
|
368
|
-
<a href="/kriskowal/es5-shim/find/v2.0.0" class="js-slide-to" data-hotkey="t" style="display:none">Show File Finder</a>
|
369
|
-
|
370
|
-
|
371
|
-
<div class="commit commit-loader file-history-tease js-deferred-content" data-url="/kriskowal/es5-shim/contributors/v2.0.0/es5-sham.min.js">
|
372
|
-
Fetching contributors…
|
373
|
-
|
374
|
-
<div class="participation">
|
375
|
-
<p class="loader-loading"><img alt="Octocat-spinner-32-eaf2f5" height="16" src="https://a248.e.akamai.net/assets.github.com/images/spinners/octocat-spinner-32-EAF2F5.gif?1340659561" width="16" /></p>
|
376
|
-
<p class="loader-error">Cannot retrieve contributors at this time</p>
|
377
|
-
</div>
|
378
|
-
</div>
|
379
|
-
|
380
|
-
</div><!-- ./.frame-meta -->
|
381
|
-
|
382
|
-
<div class="frames">
|
383
|
-
<div class="frame" data-permalink-url="/kriskowal/es5-shim/blob/11f9ef990b941240d9145c24c540b8e553ce12f9/es5-sham.min.js" data-title="es5-shim/es5-sham.min.js at v2.0.0 · kriskowal/es5-shim · GitHub" data-type="blob">
|
384
|
-
|
385
|
-
<div id="files" class="bubble">
|
386
|
-
<div class="file">
|
387
|
-
<div class="meta">
|
388
|
-
<div class="info">
|
389
|
-
<span class="icon"><b class="mini-icon mini-icon-text-file"></b></span>
|
390
|
-
<span class="mode" title="File Mode">file</span>
|
391
|
-
<span>7 lines (6 sloc)</span>
|
392
|
-
<span>2.813 kb</span>
|
393
|
-
</div>
|
394
|
-
<div class="actions">
|
395
|
-
<div class="button-group">
|
396
|
-
<a class="minibutton js-entice" href=""
|
397
|
-
data-entice="You must be signed in and on a branch to make or propose changes">Edit</a>
|
398
|
-
<a href="/kriskowal/es5-shim/raw/v2.0.0/es5-sham.min.js" class="button minibutton " id="raw-url">Raw</a>
|
399
|
-
<a href="/kriskowal/es5-shim/blame/v2.0.0/es5-sham.min.js" class="button minibutton ">Blame</a>
|
400
|
-
<a href="/kriskowal/es5-shim/commits/v2.0.0/es5-sham.min.js" class="button minibutton " rel="nofollow">History</a>
|
401
|
-
</div><!-- /.button-group -->
|
402
|
-
</div><!-- /.actions -->
|
403
|
-
|
404
|
-
</div>
|
405
|
-
<div class="blob-wrapper data type-javascript js-blob-data">
|
406
|
-
<table class="file-code file-diff">
|
407
|
-
<tr class="file-code-line">
|
408
|
-
<td class="blob-line-nums">
|
409
|
-
<span id="L1" rel="#L1">1</span>
|
410
|
-
<span id="L2" rel="#L2">2</span>
|
411
|
-
<span id="L3" rel="#L3">3</span>
|
412
|
-
<span id="L4" rel="#L4">4</span>
|
413
|
-
<span id="L5" rel="#L5">5</span>
|
414
|
-
<span id="L6" rel="#L6">6</span>
|
415
|
-
|
416
|
-
</td>
|
417
|
-
<td class="blob-line-code">
|
418
|
-
<div class="highlight"><pre><div class='line' id='LC1'><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">){</span><span class="s2">"function"</span><span class="o">==</span><span class="k">typeof</span> <span class="nx">define</span><span class="o">?</span><span class="nx">define</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="o">:</span><span class="s2">"function"</span><span class="o">==</span><span class="k">typeof</span> <span class="nx">YUI</span><span class="o">?</span><span class="nx">YUI</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s2">"es5-sham"</span><span class="p">,</span><span class="nx">d</span><span class="p">)</span><span class="o">:</span><span class="nx">d</span><span class="p">()})(</span><span class="kd">function</span><span class="p">(){</span><span class="kd">function</span> <span class="nx">d</span><span class="p">(</span><span class="nx">a</span><span class="p">){</span><span class="k">try</span><span class="p">{</span><span class="k">return</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperty</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="s2">"sentinel"</span><span class="p">,{}),</span><span class="s2">"sentinel"</span><span class="k">in</span> <span class="nx">a</span><span class="p">}</span><span class="k">catch</span><span class="p">(</span><span class="nx">c</span><span class="p">){}}</span><span class="nb">Object</span><span class="p">.</span><span class="nx">getPrototypeOf</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">getPrototypeOf</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">){</span><span class="k">return</span> <span class="nx">a</span><span class="p">.</span><span class="nx">__proto__</span><span class="o">||</span><span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">constructor</span><span class="o">?</span><span class="nx">a</span><span class="p">.</span><span class="nx">constructor</span><span class="p">.</span><span class="nx">prototype</span><span class="o">:</span><span class="nx">prototypeOfObject</span><span class="p">)});</span><span class="nb">Object</span><span class="p">.</span><span class="nx">getOwnPropertyDescriptor</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">getOwnPropertyDescriptor</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">a</span><span class="o">!=</span><span class="s2">"object"</span><span class="o">&&</span><span class="k">typeof</span> <span class="nx">a</span><span class="o">!=</span><span class="s2">"function"</span><span class="o">||</span><span class="nx">a</span><span class="o">===</span><span class="kc">null</span><span class="p">)</span><span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">(</span><span class="s2">"Object.getOwnPropertyDescriptor called on a non-object: "</span><span class="o">+</span></div><div class='line' id='LC2'><span class="nx">a</span><span class="p">);</span><span class="k">if</span><span class="p">(</span><span class="nx">owns</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">)){</span><span class="kd">var</span> <span class="nx">b</span><span class="o">=</span><span class="p">{</span><span class="nx">enumerable</span><span class="o">:</span><span class="kc">true</span><span class="p">,</span><span class="nx">configurable</span><span class="o">:</span><span class="kc">true</span><span class="p">};</span><span class="k">if</span><span class="p">(</span><span class="nx">supportsAccessors</span><span class="p">){</span><span class="kd">var</span> <span class="nx">d</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">__proto__</span><span class="p">;</span><span class="nx">a</span><span class="p">.</span><span class="nx">__proto__</span><span class="o">=</span><span class="nx">prototypeOfObject</span><span class="p">;</span><span class="kd">var</span> <span class="nx">f</span><span class="o">=</span><span class="nx">lookupGetter</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">),</span><span class="nx">e</span><span class="o">=</span><span class="nx">lookupSetter</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">);</span><span class="nx">a</span><span class="p">.</span><span class="nx">__proto__</span><span class="o">=</span><span class="nx">d</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">f</span><span class="o">||</span><span class="nx">e</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span><span class="nx">b</span><span class="p">.</span><span class="nx">get</span><span class="o">=</span><span class="nx">f</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span><span class="nx">b</span><span class="p">.</span><span class="nx">set</span><span class="o">=</span><span class="nx">e</span><span class="p">;</span><span class="k">return</span> <span class="nx">b</span><span class="p">}}</span><span class="nx">b</span><span class="p">.</span><span class="nx">value</span><span class="o">=</span><span class="nx">a</span><span class="p">[</span><span class="nx">c</span><span class="p">];</span><span class="k">return</span> <span class="nx">b</span><span class="p">}});</span><span class="nb">Object</span><span class="p">.</span><span class="nx">getOwnPropertyNames</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">getOwnPropertyNames</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">){</span><span class="k">return</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">keys</span><span class="p">(</span><span class="nx">a</span><span class="p">)});</span><span class="nb">Object</span><span class="p">.</span><span class="nx">create</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">create</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">){</span><span class="kd">var</span> <span class="nx">b</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">a</span><span class="o">===</span><span class="kc">null</span><span class="p">)</span><span class="nx">b</span><span class="o">=</span><span class="p">{</span><span class="nx">__proto__</span><span class="o">:</span><span class="kc">null</span><span class="p">};</span><span class="k">else</span><span class="p">{</span><span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">a</span><span class="o">!=</span><span class="s2">"object"</span><span class="p">)</span><span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">(</span><span class="s2">"typeof prototype["</span><span class="o">+</span><span class="k">typeof</span> <span class="nx">a</span><span class="o">+</span></div><div class='line' id='LC3'><span class="s2">"] != 'object'"</span><span class="p">);</span><span class="nx">b</span><span class="o">=</span><span class="kd">function</span><span class="p">(){};</span><span class="nx">b</span><span class="p">.</span><span class="nx">prototype</span><span class="o">=</span><span class="nx">a</span><span class="p">;</span><span class="nx">b</span><span class="o">=</span><span class="k">new</span> <span class="nx">b</span><span class="p">;</span><span class="nx">b</span><span class="p">.</span><span class="nx">__proto__</span><span class="o">=</span><span class="nx">a</span><span class="p">}</span><span class="nx">c</span><span class="o">!==</span><span class="k">void</span> <span class="mi">0</span><span class="o">&&</span><span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperties</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="nx">c</span><span class="p">);</span><span class="k">return</span> <span class="nx">b</span><span class="p">});</span><span class="k">if</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperty</span><span class="p">){</span><span class="kd">var</span> <span class="nx">g</span><span class="o">=</span><span class="nx">d</span><span class="p">({}),</span><span class="nx">h</span><span class="o">=</span><span class="s2">"undefined"</span><span class="o">==</span><span class="k">typeof</span> <span class="nb">document</span><span class="o">||</span><span class="nx">d</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">"div"</span><span class="p">));</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">g</span><span class="o">||!</span><span class="nx">h</span><span class="p">)</span><span class="kd">var</span> <span class="nx">e</span><span class="o">=</span><span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperty</span><span class="p">}</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperty</span><span class="o">||</span><span class="nx">e</span><span class="p">)</span><span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperty</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">,</span><span class="nx">b</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">a</span><span class="o">!=</span><span class="s2">"object"</span><span class="o">&&</span><span class="k">typeof</span> <span class="nx">a</span><span class="o">!=</span><span class="s2">"function"</span><span class="o">||</span><span class="nx">a</span><span class="o">===</span><span class="kc">null</span><span class="p">)</span><span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">(</span><span class="s2">"Object.defineProperty called on non-object: "</span><span class="o">+</span><span class="nx">a</span><span class="p">);</span><span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">b</span><span class="o">!=</span><span class="s2">"object"</span><span class="o">&&</span><span class="k">typeof</span> <span class="nx">b</span><span class="o">!=</span><span class="s2">"function"</span><span class="o">||</span><span class="nx">b</span><span class="o">===</span></div><div class='line' id='LC4'><span class="kc">null</span><span class="p">)</span><span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">(</span><span class="s2">"Property description must be an object: "</span><span class="o">+</span><span class="nx">b</span><span class="p">);</span><span class="k">if</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span><span class="k">try</span><span class="p">{</span><span class="k">return</span> <span class="nx">e</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nb">Object</span><span class="p">,</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">,</span><span class="nx">b</span><span class="p">)}</span><span class="k">catch</span><span class="p">(</span><span class="nx">d</span><span class="p">){}</span><span class="k">if</span><span class="p">(</span><span class="nx">owns</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="s2">"value"</span><span class="p">))</span><span class="k">if</span><span class="p">(</span><span class="nx">supportsAccessors</span><span class="o">&&</span><span class="p">(</span><span class="nx">lookupGetter</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">)</span><span class="o">||</span><span class="nx">lookupSetter</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">))){</span><span class="kd">var</span> <span class="nx">f</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">__proto__</span><span class="p">;</span><span class="nx">a</span><span class="p">.</span><span class="nx">__proto__</span><span class="o">=</span><span class="nx">prototypeOfObject</span><span class="p">;</span><span class="k">delete</span> <span class="nx">a</span><span class="p">[</span><span class="nx">c</span><span class="p">];</span><span class="nx">a</span><span class="p">[</span><span class="nx">c</span><span class="p">]</span><span class="o">=</span><span class="nx">b</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span><span class="nx">a</span><span class="p">.</span><span class="nx">__proto__</span><span class="o">=</span><span class="nx">f</span><span class="p">}</span><span class="k">else</span> <span class="nx">a</span><span class="p">[</span><span class="nx">c</span><span class="p">]</span><span class="o">=</span><span class="nx">b</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span><span class="k">else</span><span class="p">{</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">supportsAccessors</span><span class="p">)</span><span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">(</span><span class="s2">"getters & setters can not be defined on this javascript engine"</span><span class="p">);</span><span class="nx">owns</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="s2">"get"</span><span class="p">)</span><span class="o">&&</span><span class="nx">defineGetter</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">,</span><span class="nx">b</span><span class="p">.</span><span class="nx">get</span><span class="p">);</span><span class="nx">owns</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="s2">"set"</span><span class="p">)</span><span class="o">&&</span><span class="nx">defineSetter</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">,</span><span class="nx">b</span><span class="p">.</span><span class="nx">set</span><span class="p">)}</span><span class="k">return</span> <span class="nx">a</span><span class="p">};</span></div><div class='line' id='LC5'><span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperties</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperties</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">){</span><span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">b</span> <span class="k">in</span> <span class="nx">c</span><span class="p">)</span><span class="nx">owns</span><span class="p">(</span><span class="nx">c</span><span class="p">,</span><span class="nx">b</span><span class="p">)</span><span class="o">&&</span><span class="nx">b</span><span class="o">!=</span><span class="s2">"__proto__"</span><span class="o">&&</span><span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperty</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">b</span><span class="p">,</span><span class="nx">c</span><span class="p">[</span><span class="nx">b</span><span class="p">]);</span><span class="k">return</span> <span class="nx">a</span><span class="p">});</span><span class="nb">Object</span><span class="p">.</span><span class="nx">seal</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">seal</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">){</span><span class="k">return</span> <span class="nx">a</span><span class="p">});</span><span class="nb">Object</span><span class="p">.</span><span class="nx">freeze</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">freeze</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">){</span><span class="k">return</span> <span class="nx">a</span><span class="p">});</span><span class="k">try</span><span class="p">{</span><span class="nb">Object</span><span class="p">.</span><span class="nx">freeze</span><span class="p">(</span><span class="kd">function</span><span class="p">(){})}</span><span class="k">catch</span><span class="p">(</span><span class="nx">j</span><span class="p">){</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="nb">Object</span><span class="p">.</span><span class="nx">freeze</span><span class="p">;</span><span class="nb">Object</span><span class="p">.</span><span class="nx">freeze</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">){</span><span class="k">return</span> <span class="k">typeof</span> <span class="nx">a</span><span class="o">==</span><span class="s2">"function"</span><span class="o">?</span><span class="nx">a</span><span class="o">:</span><span class="nx">i</span><span class="p">(</span><span class="nx">a</span><span class="p">)}}</span><span class="nb">Object</span><span class="p">.</span><span class="nx">preventExtensions</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">preventExtensions</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">){</span><span class="k">return</span> <span class="nx">a</span><span class="p">});</span><span class="nb">Object</span><span class="p">.</span><span class="nx">isSealed</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">isSealed</span><span class="o">=</span><span class="kd">function</span><span class="p">(){</span><span class="k">return</span> <span class="kc">false</span><span class="p">});</span></div><div class='line' id='LC6'><span class="nb">Object</span><span class="p">.</span><span class="nx">isFrozen</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">isFrozen</span><span class="o">=</span><span class="kd">function</span><span class="p">(){</span><span class="k">return</span> <span class="kc">false</span><span class="p">});</span><span class="nb">Object</span><span class="p">.</span><span class="nx">isExtensible</span><span class="o">||</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">isExtensible</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="nb">Object</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span><span class="o">!==</span><span class="nx">a</span><span class="p">)</span><span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">;</span><span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="s2">""</span><span class="p">;</span><span class="nx">owns</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">);)</span><span class="nx">c</span><span class="o">=</span><span class="nx">c</span><span class="o">+</span><span class="s2">"?"</span><span class="p">;</span><span class="nx">a</span><span class="p">[</span><span class="nx">c</span><span class="p">]</span><span class="o">=</span><span class="kc">true</span><span class="p">;</span><span class="kd">var</span> <span class="nx">b</span><span class="o">=</span><span class="nx">owns</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">c</span><span class="p">);</span><span class="k">delete</span> <span class="nx">a</span><span class="p">[</span><span class="nx">c</span><span class="p">];</span><span class="k">return</span> <span class="nx">b</span><span class="p">})});</span></div></pre></div>
|
419
|
-
</td>
|
420
|
-
</tr>
|
421
|
-
</table>
|
422
|
-
</div>
|
423
|
-
|
424
|
-
</div>
|
425
|
-
</div>
|
426
|
-
|
427
|
-
<a href="#jump-to-line" rel="facebox" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a>
|
428
|
-
<div id="jump-to-line" style="display:none">
|
429
|
-
<h2>Jump to Line</h2>
|
430
|
-
<form accept-charset="UTF-8" class="js-jump-to-line-form">
|
431
|
-
<input class="textfield js-jump-to-line-field" type="text">
|
432
|
-
<div class="full-button">
|
433
|
-
<button type="submit" class="button">Go</button>
|
434
|
-
</div>
|
435
|
-
</form>
|
436
|
-
</div>
|
437
|
-
|
438
|
-
</div>
|
439
|
-
</div>
|
440
|
-
</div>
|
441
|
-
|
442
|
-
<div id="js-frame-loading-template" class="frame frame-loading large-loading-area" style="display:none;">
|
443
|
-
<img class="js-frame-loading-spinner" src="https://a248.e.akamai.net/assets.github.com/images/spinners/octocat-spinner-128.gif?1347543527" height="64" width="64">
|
444
|
-
</div>
|
445
|
-
|
446
|
-
|
447
|
-
</div>
|
448
|
-
</div>
|
449
|
-
<div class="context-overlay"></div>
|
450
|
-
</div>
|
451
|
-
|
452
|
-
<div id="footer-push"></div><!-- hack for sticky footer -->
|
453
|
-
</div><!-- end of wrapper - hack for sticky footer -->
|
454
|
-
|
455
|
-
<!-- footer -->
|
456
|
-
<div id="footer">
|
457
|
-
<div class="container clearfix">
|
458
|
-
|
459
|
-
<dl class="footer_nav">
|
460
|
-
<dt>GitHub</dt>
|
461
|
-
<dd><a href="https://github.com/about">About us</a></dd>
|
462
|
-
<dd><a href="https://github.com/blog">Blog</a></dd>
|
463
|
-
<dd><a href="https://github.com/contact">Contact & support</a></dd>
|
464
|
-
<dd><a href="http://enterprise.github.com/">GitHub Enterprise</a></dd>
|
465
|
-
<dd><a href="http://status.github.com/">Site status</a></dd>
|
466
|
-
</dl>
|
467
|
-
|
468
|
-
<dl class="footer_nav">
|
469
|
-
<dt>Applications</dt>
|
470
|
-
<dd><a href="http://mac.github.com/">GitHub for Mac</a></dd>
|
471
|
-
<dd><a href="http://windows.github.com/">GitHub for Windows</a></dd>
|
472
|
-
<dd><a href="http://eclipse.github.com/">GitHub for Eclipse</a></dd>
|
473
|
-
<dd><a href="http://mobile.github.com/">GitHub mobile apps</a></dd>
|
474
|
-
</dl>
|
475
|
-
|
476
|
-
<dl class="footer_nav">
|
477
|
-
<dt>Services</dt>
|
478
|
-
<dd><a href="http://get.gaug.es/">Gauges: Web analytics</a></dd>
|
479
|
-
<dd><a href="http://speakerdeck.com">Speaker Deck: Presentations</a></dd>
|
480
|
-
<dd><a href="https://gist.github.com">Gist: Code snippets</a></dd>
|
481
|
-
<dd><a href="http://jobs.github.com/">Job board</a></dd>
|
482
|
-
</dl>
|
483
|
-
|
484
|
-
<dl class="footer_nav">
|
485
|
-
<dt>Documentation</dt>
|
486
|
-
<dd><a href="http://help.github.com/">GitHub Help</a></dd>
|
487
|
-
<dd><a href="http://developer.github.com/">Developer API</a></dd>
|
488
|
-
<dd><a href="http://github.github.com/github-flavored-markdown/">GitHub Flavored Markdown</a></dd>
|
489
|
-
<dd><a href="http://pages.github.com/">GitHub Pages</a></dd>
|
490
|
-
</dl>
|
491
|
-
|
492
|
-
<dl class="footer_nav">
|
493
|
-
<dt>More</dt>
|
494
|
-
<dd><a href="http://training.github.com/">Training</a></dd>
|
495
|
-
<dd><a href="https://github.com/edu">Students & teachers</a></dd>
|
496
|
-
<dd><a href="http://shop.github.com">The Shop</a></dd>
|
497
|
-
<dd><a href="/plans">Plans & pricing</a></dd>
|
498
|
-
<dd><a href="http://octodex.github.com/">The Octodex</a></dd>
|
499
|
-
</dl>
|
500
|
-
|
501
|
-
<hr class="footer-divider">
|
502
|
-
|
503
|
-
|
504
|
-
<p class="right">© 2013 <span title="0.10318s from fe18.rs.github.com">GitHub</span>, Inc. All rights reserved.</p>
|
505
|
-
<a class="left" href="https://github.com/">
|
506
|
-
<span class="mega-icon mega-icon-invertocat"></span>
|
507
|
-
</a>
|
508
|
-
<ul id="legal">
|
509
|
-
<li><a href="https://github.com/site/terms">Terms of Service</a></li>
|
510
|
-
<li><a href="https://github.com/site/privacy">Privacy</a></li>
|
511
|
-
<li><a href="https://github.com/security">Security</a></li>
|
512
|
-
</ul>
|
513
|
-
|
514
|
-
</div><!-- /.container -->
|
515
|
-
|
516
|
-
</div><!-- /.#footer -->
|
517
|
-
|
518
|
-
|
519
|
-
<div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
|
520
|
-
<div class="fullscreen-container js-fullscreen-container">
|
521
|
-
<div class="textarea-wrap">
|
522
|
-
<textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea>
|
523
|
-
<div class="suggester-container">
|
524
|
-
<div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester"
|
525
|
-
data-url="/kriskowal/es5-shim/suggestions/commit">
|
526
|
-
</div>
|
527
|
-
</div>
|
528
|
-
</div>
|
529
|
-
</div>
|
530
|
-
<div class="fullscreen-sidebar">
|
531
|
-
<a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode">
|
532
|
-
<span class="mega-icon mega-icon-normalscreen"></span>
|
533
|
-
</a>
|
534
|
-
<a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards"
|
535
|
-
title="Switch themes">
|
536
|
-
<span class="mini-icon mini-icon-brightness"></span>
|
537
|
-
</a>
|
538
|
-
</div>
|
539
|
-
</div>
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
<div id="ajax-error-message" class="flash flash-error">
|
544
|
-
<span class="mini-icon mini-icon-exclamation"></span>
|
545
|
-
Something went wrong with that request. Please try again.
|
546
|
-
<a href="#" class="mini-icon mini-icon-remove-close ajax-error-dismiss"></a>
|
547
|
-
</div>
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
<span id='server_response_time' data-time='0.10376' data-host='fe18'></span>
|
552
|
-
|
553
|
-
</body>
|
554
|
-
</html>
|
555
|
-
|
1
|
+
// Copyright 2009-2012 by contributors, MIT License
|
2
|
+
// vim: ts=4 sts=4 sw=4 expandtab
|
3
|
+
|
4
|
+
// Module systems magic dance
|
5
|
+
(function (definition) {
|
6
|
+
// RequireJS
|
7
|
+
if (typeof define == "function") {
|
8
|
+
define(definition);
|
9
|
+
// YUI3
|
10
|
+
} else if (typeof YUI == "function") {
|
11
|
+
YUI.add("es5-sham", definition);
|
12
|
+
// CommonJS and <script>
|
13
|
+
} else {
|
14
|
+
definition();
|
15
|
+
}
|
16
|
+
})(function () {
|
17
|
+
|
18
|
+
// ES5 15.2.3.2
|
19
|
+
// http://es5.github.com/#x15.2.3.2
|
20
|
+
if (!Object.getPrototypeOf) {
|
21
|
+
// https://github.com/kriskowal/es5-shim/issues#issue/2
|
22
|
+
// http://ejohn.org/blog/objectgetprototypeof/
|
23
|
+
// recommended by fschaefer on github
|
24
|
+
Object.getPrototypeOf = function getPrototypeOf(object) {
|
25
|
+
return object.__proto__ || (
|
26
|
+
object.constructor
|
27
|
+
? object.constructor.prototype
|
28
|
+
: prototypeOfObject
|
29
|
+
);
|
30
|
+
};
|
31
|
+
}
|
32
|
+
|
33
|
+
// ES5 15.2.3.3
|
34
|
+
// http://es5.github.com/#x15.2.3.3
|
35
|
+
if (!Object.getOwnPropertyDescriptor) {
|
36
|
+
var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a non-object: ";
|
37
|
+
|
38
|
+
Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
|
39
|
+
if ((typeof object != "object" && typeof object != "function") || object === null) {
|
40
|
+
throw new TypeError(ERR_NON_OBJECT + object);
|
41
|
+
}
|
42
|
+
// If object does not owns property return undefined immediately.
|
43
|
+
if (!owns(object, property)) {
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
|
47
|
+
// If object has a property then it's for sure both `enumerable` and
|
48
|
+
// `configurable`.
|
49
|
+
var descriptor = { enumerable: true, configurable: true };
|
50
|
+
|
51
|
+
// If JS engine supports accessor properties then property may be a
|
52
|
+
// getter or setter.
|
53
|
+
if (supportsAccessors) {
|
54
|
+
// Unfortunately `__lookupGetter__` will return a getter even
|
55
|
+
// if object has own non getter property along with a same named
|
56
|
+
// inherited getter. To avoid misbehavior we temporary remove
|
57
|
+
// `__proto__` so that `__lookupGetter__` will return getter only
|
58
|
+
// if it's owned by an object.
|
59
|
+
var prototype = object.__proto__;
|
60
|
+
object.__proto__ = prototypeOfObject;
|
61
|
+
|
62
|
+
var getter = lookupGetter(object, property);
|
63
|
+
var setter = lookupSetter(object, property);
|
64
|
+
|
65
|
+
// Once we have getter and setter we can put values back.
|
66
|
+
object.__proto__ = prototype;
|
67
|
+
|
68
|
+
if (getter || setter) {
|
69
|
+
if (getter) {
|
70
|
+
descriptor.get = getter;
|
71
|
+
}
|
72
|
+
if (setter) {
|
73
|
+
descriptor.set = setter;
|
74
|
+
}
|
75
|
+
// If it was accessor property we're done and return here
|
76
|
+
// in order to avoid adding `value` to the descriptor.
|
77
|
+
return descriptor;
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
// If we got this far we know that object has an own property that is
|
82
|
+
// not an accessor so we set it as a value and return descriptor.
|
83
|
+
descriptor.value = object[property];
|
84
|
+
return descriptor;
|
85
|
+
};
|
86
|
+
}
|
87
|
+
|
88
|
+
// ES5 15.2.3.4
|
89
|
+
// http://es5.github.com/#x15.2.3.4
|
90
|
+
if (!Object.getOwnPropertyNames) {
|
91
|
+
Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
|
92
|
+
return Object.keys(object);
|
93
|
+
};
|
94
|
+
}
|
95
|
+
|
96
|
+
// ES5 15.2.3.5
|
97
|
+
// http://es5.github.com/#x15.2.3.5
|
98
|
+
if (!Object.create) {
|
99
|
+
Object.create = function create(prototype, properties) {
|
100
|
+
var object;
|
101
|
+
if (prototype === null) {
|
102
|
+
object = { "__proto__": null };
|
103
|
+
} else {
|
104
|
+
if (typeof prototype != "object") {
|
105
|
+
throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
|
106
|
+
}
|
107
|
+
var Type = function () {};
|
108
|
+
Type.prototype = prototype;
|
109
|
+
object = new Type();
|
110
|
+
// IE has no built-in implementation of `Object.getPrototypeOf`
|
111
|
+
// neither `__proto__`, but this manually setting `__proto__` will
|
112
|
+
// guarantee that `Object.getPrototypeOf` will work as expected with
|
113
|
+
// objects created using `Object.create`
|
114
|
+
object.__proto__ = prototype;
|
115
|
+
}
|
116
|
+
if (properties !== void 0) {
|
117
|
+
Object.defineProperties(object, properties);
|
118
|
+
}
|
119
|
+
return object;
|
120
|
+
};
|
121
|
+
}
|
122
|
+
|
123
|
+
// ES5 15.2.3.6
|
124
|
+
// http://es5.github.com/#x15.2.3.6
|
125
|
+
|
126
|
+
// Patch for WebKit and IE8 standard mode
|
127
|
+
// Designed by hax <hax.github.com>
|
128
|
+
// related issue: https://github.com/kriskowal/es5-shim/issues#issue/5
|
129
|
+
// IE8 Reference:
|
130
|
+
// http://msdn.microsoft.com/en-us/library/dd282900.aspx
|
131
|
+
// http://msdn.microsoft.com/en-us/library/dd229916.aspx
|
132
|
+
// WebKit Bugs:
|
133
|
+
// https://bugs.webkit.org/show_bug.cgi?id=36423
|
134
|
+
|
135
|
+
function doesDefinePropertyWork(object) {
|
136
|
+
try {
|
137
|
+
Object.defineProperty(object, "sentinel", {});
|
138
|
+
return "sentinel" in object;
|
139
|
+
} catch (exception) {
|
140
|
+
// returns falsy
|
141
|
+
}
|
142
|
+
}
|
143
|
+
|
144
|
+
// check whether defineProperty works if it's given. Otherwise,
|
145
|
+
// shim partially.
|
146
|
+
if (Object.defineProperty) {
|
147
|
+
var definePropertyWorksOnObject = doesDefinePropertyWork({});
|
148
|
+
var definePropertyWorksOnDom = typeof document == "undefined" ||
|
149
|
+
doesDefinePropertyWork(document.createElement("div"));
|
150
|
+
if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
|
151
|
+
var definePropertyFallback = Object.defineProperty;
|
152
|
+
}
|
153
|
+
}
|
154
|
+
|
155
|
+
if (!Object.defineProperty || definePropertyFallback) {
|
156
|
+
var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
|
157
|
+
var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
|
158
|
+
var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
|
159
|
+
"on this javascript engine";
|
160
|
+
|
161
|
+
Object.defineProperty = function defineProperty(object, property, descriptor) {
|
162
|
+
if ((typeof object != "object" && typeof object != "function") || object === null) {
|
163
|
+
throw new TypeError(ERR_NON_OBJECT_TARGET + object);
|
164
|
+
}
|
165
|
+
if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) {
|
166
|
+
throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
|
167
|
+
}
|
168
|
+
// make a valiant attempt to use the real defineProperty
|
169
|
+
// for I8's DOM elements.
|
170
|
+
if (definePropertyFallback) {
|
171
|
+
try {
|
172
|
+
return definePropertyFallback.call(Object, object, property, descriptor);
|
173
|
+
} catch (exception) {
|
174
|
+
// try the shim if the real one doesn't work
|
175
|
+
}
|
176
|
+
}
|
177
|
+
|
178
|
+
// If it's a data property.
|
179
|
+
if (owns(descriptor, "value")) {
|
180
|
+
// fail silently if "writable", "enumerable", or "configurable"
|
181
|
+
// are requested but not supported
|
182
|
+
/*
|
183
|
+
// alternate approach:
|
184
|
+
if ( // can't implement these features; allow false but not true
|
185
|
+
!(owns(descriptor, "writable") ? descriptor.writable : true) ||
|
186
|
+
!(owns(descriptor, "enumerable") ? descriptor.enumerable : true) ||
|
187
|
+
!(owns(descriptor, "configurable") ? descriptor.configurable : true)
|
188
|
+
)
|
189
|
+
throw new RangeError(
|
190
|
+
"This implementation of Object.defineProperty does not " +
|
191
|
+
"support configurable, enumerable, or writable."
|
192
|
+
);
|
193
|
+
*/
|
194
|
+
|
195
|
+
if (supportsAccessors && (lookupGetter(object, property) ||
|
196
|
+
lookupSetter(object, property)))
|
197
|
+
{
|
198
|
+
// As accessors are supported only on engines implementing
|
199
|
+
// `__proto__` we can safely override `__proto__` while defining
|
200
|
+
// a property to make sure that we don't hit an inherited
|
201
|
+
// accessor.
|
202
|
+
var prototype = object.__proto__;
|
203
|
+
object.__proto__ = prototypeOfObject;
|
204
|
+
// Deleting a property anyway since getter / setter may be
|
205
|
+
// defined on object itself.
|
206
|
+
delete object[property];
|
207
|
+
object[property] = descriptor.value;
|
208
|
+
// Setting original `__proto__` back now.
|
209
|
+
object.__proto__ = prototype;
|
210
|
+
} else {
|
211
|
+
object[property] = descriptor.value;
|
212
|
+
}
|
213
|
+
} else {
|
214
|
+
if (!supportsAccessors) {
|
215
|
+
throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
|
216
|
+
}
|
217
|
+
// If we got that far then getters and setters can be defined !!
|
218
|
+
if (owns(descriptor, "get")) {
|
219
|
+
defineGetter(object, property, descriptor.get);
|
220
|
+
}
|
221
|
+
if (owns(descriptor, "set")) {
|
222
|
+
defineSetter(object, property, descriptor.set);
|
223
|
+
}
|
224
|
+
}
|
225
|
+
return object;
|
226
|
+
};
|
227
|
+
}
|
228
|
+
|
229
|
+
// ES5 15.2.3.7
|
230
|
+
// http://es5.github.com/#x15.2.3.7
|
231
|
+
if (!Object.defineProperties) {
|
232
|
+
Object.defineProperties = function defineProperties(object, properties) {
|
233
|
+
for (var property in properties) {
|
234
|
+
if (owns(properties, property) && property != "__proto__") {
|
235
|
+
Object.defineProperty(object, property, properties[property]);
|
236
|
+
}
|
237
|
+
}
|
238
|
+
return object;
|
239
|
+
};
|
240
|
+
}
|
241
|
+
|
242
|
+
// ES5 15.2.3.8
|
243
|
+
// http://es5.github.com/#x15.2.3.8
|
244
|
+
if (!Object.seal) {
|
245
|
+
Object.seal = function seal(object) {
|
246
|
+
// this is misleading and breaks feature-detection, but
|
247
|
+
// allows "securable" code to "gracefully" degrade to working
|
248
|
+
// but insecure code.
|
249
|
+
return object;
|
250
|
+
};
|
251
|
+
}
|
252
|
+
|
253
|
+
// ES5 15.2.3.9
|
254
|
+
// http://es5.github.com/#x15.2.3.9
|
255
|
+
if (!Object.freeze) {
|
256
|
+
Object.freeze = function freeze(object) {
|
257
|
+
// this is misleading and breaks feature-detection, but
|
258
|
+
// allows "securable" code to "gracefully" degrade to working
|
259
|
+
// but insecure code.
|
260
|
+
return object;
|
261
|
+
};
|
262
|
+
}
|
263
|
+
|
264
|
+
// detect a Rhino bug and patch it
|
265
|
+
try {
|
266
|
+
Object.freeze(function () {});
|
267
|
+
} catch (exception) {
|
268
|
+
Object.freeze = (function freeze(freezeObject) {
|
269
|
+
return function freeze(object) {
|
270
|
+
if (typeof object == "function") {
|
271
|
+
return object;
|
272
|
+
} else {
|
273
|
+
return freezeObject(object);
|
274
|
+
}
|
275
|
+
};
|
276
|
+
})(Object.freeze);
|
277
|
+
}
|
278
|
+
|
279
|
+
// ES5 15.2.3.10
|
280
|
+
// http://es5.github.com/#x15.2.3.10
|
281
|
+
if (!Object.preventExtensions) {
|
282
|
+
Object.preventExtensions = function preventExtensions(object) {
|
283
|
+
// this is misleading and breaks feature-detection, but
|
284
|
+
// allows "securable" code to "gracefully" degrade to working
|
285
|
+
// but insecure code.
|
286
|
+
return object;
|
287
|
+
};
|
288
|
+
}
|
289
|
+
|
290
|
+
// ES5 15.2.3.11
|
291
|
+
// http://es5.github.com/#x15.2.3.11
|
292
|
+
if (!Object.isSealed) {
|
293
|
+
Object.isSealed = function isSealed(object) {
|
294
|
+
return false;
|
295
|
+
};
|
296
|
+
}
|
297
|
+
|
298
|
+
// ES5 15.2.3.12
|
299
|
+
// http://es5.github.com/#x15.2.3.12
|
300
|
+
if (!Object.isFrozen) {
|
301
|
+
Object.isFrozen = function isFrozen(object) {
|
302
|
+
return false;
|
303
|
+
};
|
304
|
+
}
|
305
|
+
|
306
|
+
// ES5 15.2.3.13
|
307
|
+
// http://es5.github.com/#x15.2.3.13
|
308
|
+
if (!Object.isExtensible) {
|
309
|
+
Object.isExtensible = function isExtensible(object) {
|
310
|
+
// 1. If Type(O) is not Object throw a TypeError exception.
|
311
|
+
if (Object(object) !== object) {
|
312
|
+
throw new TypeError(); // TODO message
|
313
|
+
}
|
314
|
+
// 2. Return the Boolean value of the [[Extensible]] internal property of O.
|
315
|
+
var name = '';
|
316
|
+
while (owns(object, name)) {
|
317
|
+
name += '?';
|
318
|
+
}
|
319
|
+
object[name] = true;
|
320
|
+
var returnValue = owns(object, name);
|
321
|
+
delete object[name];
|
322
|
+
return returnValue;
|
323
|
+
};
|
324
|
+
}
|
325
|
+
|
326
|
+
});
|