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,562 +1,778 @@
1
-
2
-
3
-
4
- <!DOCTYPE html>
5
- <html>
6
- <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#">
7
- <meta charset='utf-8'>
8
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
9
- <title>es5-shim/es5-shim.min.js at v2.0.0 · kriskowal/es5-shim · GitHub</title>
10
- <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
11
- <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" />
12
- <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" />
13
- <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" />
14
- <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" />
15
- <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" />
16
- <link rel="logo" type="image/svg" href="http://github-media-downloads.s3.amazonaws.com/github-logo.svg" />
17
- <link rel="xhr-socket" href="/_sockets">
18
- <meta name="msapplication-TileImage" content="/windows-tile.png">
19
- <meta name="msapplication-TileColor" content="#ffffff">
20
-
21
-
22
-
23
- <link rel="icon" type="image/x-icon" href="/favicon.ico" />
24
-
25
- <meta content="authenticity_token" name="csrf-param" />
26
- <meta content="hIMbUKugiCDahU5Tj0hhP7yAzOsikLNO+f7AuX/sGvk=" name="csrf-token" />
27
-
28
- <link href="https://a248.e.akamai.net/assets.github.com/assets/github-202e33a586eb990be0ca930957d0d26c9d440e4b.css" media="all" rel="stylesheet" type="text/css" />
29
- <link href="https://a248.e.akamai.net/assets.github.com/assets/github2-54d5f0f93e4b5fa56548ac41e306faf4eec18a6c.css" media="all" rel="stylesheet" type="text/css" />
30
-
31
-
32
-
33
- <script src="https://a248.e.akamai.net/assets.github.com/assets/frameworks-92d138f450f2960501e28397a2f63b0f100590f0.js" type="text/javascript"></script>
34
- <script src="https://a248.e.akamai.net/assets.github.com/assets/github-79f2823dcb759d8be14a47cc3866f523e4e21124.js" type="text/javascript"></script>
35
-
36
- <meta http-equiv="x-pjax-version" content="6783c79a73bd54c60e70db0ff2be87db">
37
-
38
- <link data-pjax-transient rel='permalink' href='/kriskowal/es5-shim/blob/11f9ef990b941240d9145c24c540b8e553ce12f9/es5-shim.min.js'>
39
- <meta property="og:title" content="es5-shim"/>
40
- <meta property="og:type" content="githubog:gitrepository"/>
41
- <meta property="og:url" content="https://github.com/kriskowal/es5-shim"/>
42
- <meta property="og:image" content="https://secure.gravatar.com/avatar/3c6753e1e589735a0a3a6d417d9553cd?s=420&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"/>
43
- <meta property="og:site_name" content="GitHub"/>
44
- <meta property="og:description" content="es5-shim - ECMAScript 5 compatibility shims for legacy JavaScript engines"/>
45
- <meta property="twitter:card" content="summary"/>
46
- <meta property="twitter:site" content="@GitHub">
47
- <meta property="twitter:title" content="kriskowal/es5-shim"/>
48
-
49
- <meta name="description" content="es5-shim - ECMAScript 5 compatibility shims for legacy JavaScript engines" />
50
-
51
- <link href="https://github.com/kriskowal/es5-shim/commits/v2.0.0.atom" rel="alternate" title="Recent Commits to es5-shim:v2.0.0" type="application/atom+xml" />
52
-
53
- </head>
54
-
55
-
56
- <body class="logged_out page-blob vis-public env-production ">
57
- <div id="wrapper">
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
- <div class="header header-logged-out">
67
- <div class="container clearfix">
68
-
69
- <a class="header-logo-wordmark" href="https://github.com/">Github</a>
70
-
71
- <div class="header-actions">
72
- <a class="button primary" href="https://github.com/signup">Sign up for free</a>
73
- <a class="button" href="https://github.com/login?return_to=%2Fkriskowal%2Fes5-shim%2Fblob%2Fv2.0.0%2Fes5-shim.min.js">Sign in</a>
74
- </div>
75
-
76
- <ul class="top-nav">
77
- <li class="explore"><a href="https://github.com/explore">Explore GitHub</a></li>
78
- <li class="search"><a href="https://github.com/search">Search</a></li>
79
- <li class="features"><a href="https://github.com/features">Features</a></li>
80
- <li class="blog"><a href="https://github.com/blog">Blog</a></li>
81
- </ul>
82
-
83
- </div>
84
- </div>
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
- <div class="site hfeed" itemscope itemtype="http://schema.org/WebPage">
93
- <div class="hentry">
94
-
95
- <div class="pagehead repohead instapaper_ignore readability-menu ">
96
- <div class="container">
97
- <div class="title-actions-bar">
98
-
99
-
100
-
101
- <ul class="pagehead-actions">
102
-
103
-
104
-
105
- <li>
106
- <a href="/login?return_to=%2Fkriskowal%2Fes5-shim"
107
- class="minibutton js-toggler-target star-button entice tooltipped upwards"
108
- title="You must be signed in to use this feature" rel="nofollow">
109
- <span class="mini-icon mini-icon-star"></span>Star
110
- </a>
111
- <a class="social-count js-social-count" href="/kriskowal/es5-shim/stargazers">
112
- 1,485
113
- </a>
114
- </li>
115
- <li>
116
- <a href="/login?return_to=%2Fkriskowal%2Fes5-shim"
117
- class="minibutton js-toggler-target fork-button entice tooltipped upwards"
118
- title="You must be signed in to fork a repository" rel="nofollow">
119
- <span class="mini-icon mini-icon-fork"></span>Fork
120
- </a>
121
- <a href="/kriskowal/es5-shim/network" class="social-count">
122
- 171
123
- </a>
124
- </li>
125
- </ul>
126
-
127
- <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
128
- <span class="repo-label"><span>public</span></span>
129
- <span class="mega-icon mega-icon-public-repo"></span>
130
- <span class="author vcard">
131
- <a href="/kriskowal" class="url fn" itemprop="url" rel="author">
132
- <span itemprop="title">kriskowal</span>
133
- </a></span> /
134
- <strong><a href="/kriskowal/es5-shim" class="js-current-repository">es5-shim</a></strong>
135
- </h1>
136
- </div>
137
-
138
-
139
- <ul class="tabs">
140
- <li class="pulse-nav"><a href="/kriskowal/es5-shim/pulse" highlight="pulse" rel="nofollow"><span class="mini-icon mini-icon-pulse"></span></a></li>
141
- <li><a href="/kriskowal/es5-shim/tree/v2.0.0" class="selected" highlight="repo_source repo_downloads repo_commits repo_tags repo_branches">Code</a></li>
142
- <li><a href="/kriskowal/es5-shim/network" highlight="repo_network">Network</a></li>
143
- <li><a href="/kriskowal/es5-shim/pulls" highlight="repo_pulls">Pull Requests <span class='counter'>4</span></a></li>
144
-
145
- <li><a href="/kriskowal/es5-shim/issues" highlight="repo_issues">Issues <span class='counter'>26</span></a></li>
146
-
147
-
148
-
149
- <li><a href="/kriskowal/es5-shim/graphs" highlight="repo_graphs repo_contributors">Graphs</a></li>
150
-
151
-
152
- </ul>
153
-
154
- <div class="tabnav">
155
-
156
- <span class="tabnav-right">
157
- <ul class="tabnav-tabs">
158
- <li><a href="/kriskowal/es5-shim/tags" class="tabnav-tab" highlight="repo_tags">Tags <span class="counter ">23</span></a></li>
159
- </ul>
160
-
161
- </span>
162
-
163
- <div class="tabnav-widget scope">
164
-
165
-
166
- <div class="select-menu js-menu-container js-select-menu js-branch-menu">
167
- <a class="minibutton select-menu-button js-menu-target" data-hotkey="w" data-ref="v2.0.0">
168
- <span class="mini-icon mini-icon-tag"></span>
169
- <i>tag:</i>
170
- <span class="js-select-button">v2.0.0</span>
171
- </a>
172
-
173
- <div class="select-menu-modal-holder js-menu-content js-navigation-container">
174
-
175
- <div class="select-menu-modal">
176
- <div class="select-menu-header">
177
- <span class="select-menu-title">Switch branches/tags</span>
178
- <span class="mini-icon mini-icon-remove-close js-menu-close"></span>
179
- </div> <!-- /.select-menu-header -->
180
-
181
- <div class="select-menu-filters">
182
- <div class="select-menu-text-filter">
183
- <input type="text" id="commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
184
- </div>
185
- <div class="select-menu-tabs">
186
- <ul>
187
- <li class="select-menu-tab">
188
- <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a>
189
- </li>
190
- <li class="select-menu-tab">
191
- <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a>
192
- </li>
193
- </ul>
194
- </div><!-- /.select-menu-tabs -->
195
- </div><!-- /.select-menu-filters -->
196
-
197
- <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket css-truncate" data-tab-filter="branches">
198
-
199
- <div data-filterable-for="commitish-filter-field" data-filterable-type="substring">
200
-
201
- <div class="select-menu-item js-navigation-item js-navigation-target ">
202
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
203
- <a href="/kriskowal/es5-shim/blob/gh-150/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="gh-150" rel="nofollow" title="gh-150">gh-150</a>
204
- </div> <!-- /.select-menu-item -->
205
- <div class="select-menu-item js-navigation-item js-navigation-target ">
206
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
207
- <a href="/kriskowal/es5-shim/blob/js-shim/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="js-shim" rel="nofollow" title="js-shim">js-shim</a>
208
- </div> <!-- /.select-menu-item -->
209
- <div class="select-menu-item js-navigation-item js-navigation-target ">
210
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
211
- <a href="/kriskowal/es5-shim/blob/master/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="master" rel="nofollow" title="master">master</a>
212
- </div> <!-- /.select-menu-item -->
213
- <div class="select-menu-item js-navigation-item js-navigation-target ">
214
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
215
- <a href="/kriskowal/es5-shim/blob/review/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="review" rel="nofollow" title="review">review</a>
216
- </div> <!-- /.select-menu-item -->
217
- <div class="select-menu-item js-navigation-item js-navigation-target ">
218
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
219
- <a href="/kriskowal/es5-shim/blob/work/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="work" rel="nofollow" title="work">work</a>
220
- </div> <!-- /.select-menu-item -->
221
- </div>
222
-
223
- <div class="select-menu-no-results">Nothing to show</div>
224
- </div> <!-- /.select-menu-list -->
225
-
226
-
227
- <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket css-truncate" data-tab-filter="tags">
228
- <div data-filterable-for="commitish-filter-field" data-filterable-type="substring">
229
-
230
- <div class="select-menu-item js-navigation-item js-navigation-target ">
231
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
232
- <a href="/kriskowal/es5-shim/blob/v2.0.8/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v2.0.8" rel="nofollow" title="v2.0.8">v2.0.8</a>
233
- </div> <!-- /.select-menu-item -->
234
- <div class="select-menu-item js-navigation-item js-navigation-target ">
235
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
236
- <a href="/kriskowal/es5-shim/blob/v2.0.7/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v2.0.7" rel="nofollow" title="v2.0.7">v2.0.7</a>
237
- </div> <!-- /.select-menu-item -->
238
- <div class="select-menu-item js-navigation-item js-navigation-target ">
239
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
240
- <a href="/kriskowal/es5-shim/blob/v2.0.6/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v2.0.6" rel="nofollow" title="v2.0.6">v2.0.6</a>
241
- </div> <!-- /.select-menu-item -->
242
- <div class="select-menu-item js-navigation-item js-navigation-target ">
243
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
244
- <a href="/kriskowal/es5-shim/blob/v2.0.5/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v2.0.5" rel="nofollow" title="v2.0.5">v2.0.5</a>
245
- </div> <!-- /.select-menu-item -->
246
- <div class="select-menu-item js-navigation-item js-navigation-target ">
247
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
248
- <a href="/kriskowal/es5-shim/blob/v2.0.4/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v2.0.4" rel="nofollow" title="v2.0.4">v2.0.4</a>
249
- </div> <!-- /.select-menu-item -->
250
- <div class="select-menu-item js-navigation-item js-navigation-target ">
251
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
252
- <a href="/kriskowal/es5-shim/blob/v2.0.2/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v2.0.2" rel="nofollow" title="v2.0.2">v2.0.2</a>
253
- </div> <!-- /.select-menu-item -->
254
- <div class="select-menu-item js-navigation-item js-navigation-target ">
255
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
256
- <a href="/kriskowal/es5-shim/blob/v2.0.1/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v2.0.1" rel="nofollow" title="v2.0.1">v2.0.1</a>
257
- </div> <!-- /.select-menu-item -->
258
- <div class="select-menu-item js-navigation-item js-navigation-target selected">
259
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
260
- <a href="/kriskowal/es5-shim/blob/v2.0.0/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v2.0.0" rel="nofollow" title="v2.0.0">v2.0.0</a>
261
- </div> <!-- /.select-menu-item -->
262
- <div class="select-menu-item js-navigation-item js-navigation-target ">
263
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
264
- <a href="/kriskowal/es5-shim/blob/v1.2.10/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.2.10" rel="nofollow" title="v1.2.10">v1.2.10</a>
265
- </div> <!-- /.select-menu-item -->
266
- <div class="select-menu-item js-navigation-item js-navigation-target ">
267
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
268
- <a href="/kriskowal/es5-shim/blob/v1.2.8/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.2.8" rel="nofollow" title="v1.2.8">v1.2.8</a>
269
- </div> <!-- /.select-menu-item -->
270
- <div class="select-menu-item js-navigation-item js-navigation-target ">
271
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
272
- <a href="/kriskowal/es5-shim/blob/v1.2.7/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.2.7" rel="nofollow" title="v1.2.7">v1.2.7</a>
273
- </div> <!-- /.select-menu-item -->
274
- <div class="select-menu-item js-navigation-item js-navigation-target ">
275
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
276
- <a href="/kriskowal/es5-shim/blob/v1.2.4/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.2.4" rel="nofollow" title="v1.2.4">v1.2.4</a>
277
- </div> <!-- /.select-menu-item -->
278
- <div class="select-menu-item js-navigation-item js-navigation-target ">
279
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
280
- <a href="/kriskowal/es5-shim/blob/v1.2.3/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.2.3" rel="nofollow" title="v1.2.3">v1.2.3</a>
281
- </div> <!-- /.select-menu-item -->
282
- <div class="select-menu-item js-navigation-item js-navigation-target ">
283
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
284
- <a href="/kriskowal/es5-shim/blob/v1.2.2/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.2.2" rel="nofollow" title="v1.2.2">v1.2.2</a>
285
- </div> <!-- /.select-menu-item -->
286
- <div class="select-menu-item js-navigation-item js-navigation-target ">
287
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
288
- <a href="/kriskowal/es5-shim/blob/v1.2.1/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.2.1" rel="nofollow" title="v1.2.1">v1.2.1</a>
289
- </div> <!-- /.select-menu-item -->
290
- <div class="select-menu-item js-navigation-item js-navigation-target ">
291
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
292
- <a href="/kriskowal/es5-shim/blob/v1.2.0/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.2.0" rel="nofollow" title="v1.2.0">v1.2.0</a>
293
- </div> <!-- /.select-menu-item -->
294
- <div class="select-menu-item js-navigation-item js-navigation-target ">
295
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
296
- <a href="/kriskowal/es5-shim/blob/v1.1.0/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.1.0" rel="nofollow" title="v1.1.0">v1.1.0</a>
297
- </div> <!-- /.select-menu-item -->
298
- <div class="select-menu-item js-navigation-item js-navigation-target ">
299
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
300
- <a href="/kriskowal/es5-shim/blob/v1.0.0/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v1.0.0" rel="nofollow" title="v1.0.0">v1.0.0</a>
301
- </div> <!-- /.select-menu-item -->
302
- <div class="select-menu-item js-navigation-item js-navigation-target ">
303
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
304
- <a href="/kriskowal/es5-shim/blob/v0.2.10/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.2.10" rel="nofollow" title="v0.2.10">v0.2.10</a>
305
- </div> <!-- /.select-menu-item -->
306
- <div class="select-menu-item js-navigation-item js-navigation-target ">
307
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
308
- <a href="/kriskowal/es5-shim/blob/v0.0.4/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.0.4" rel="nofollow" title="v0.0.4">v0.0.4</a>
309
- </div> <!-- /.select-menu-item -->
310
- <div class="select-menu-item js-navigation-item js-navigation-target ">
311
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
312
- <a href="/kriskowal/es5-shim/blob/v0.0.3/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.0.3" rel="nofollow" title="v0.0.3">v0.0.3</a>
313
- </div> <!-- /.select-menu-item -->
314
- <div class="select-menu-item js-navigation-item js-navigation-target ">
315
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
316
- <a href="/kriskowal/es5-shim/blob/v0.0.2/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.0.2" rel="nofollow" title="v0.0.2">v0.0.2</a>
317
- </div> <!-- /.select-menu-item -->
318
- <div class="select-menu-item js-navigation-item js-navigation-target ">
319
- <span class="select-menu-item-icon mini-icon mini-icon-confirm"></span>
320
- <a href="/kriskowal/es5-shim/blob/v0.0.1/es5-shim.min.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.0.1" rel="nofollow" title="v0.0.1">v0.0.1</a>
321
- </div> <!-- /.select-menu-item -->
322
- </div>
323
-
324
- <div class="select-menu-no-results">Nothing to show</div>
325
-
326
- </div> <!-- /.select-menu-list -->
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:62361ecc1f59a926c66c795ede509992 -->
356
- <!-- blob contrib frag key: views10/v8/blob_contributors:v21:62361ecc1f59a926c66c795ede509992 -->
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-shim.min.js</strong> <span class="js-zeroclipboard zeroclipboard-button" data-clipboard-text="es5-shim.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-shim.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?1338945075" 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-shim.min.js" data-title="es5-shim/es5-shim.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>14 lines (13 sloc)</span>
392
- <span>6.412 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-shim.min.js" class="button minibutton " id="raw-url">Raw</a>
399
- <a href="/kriskowal/es5-shim/blame/v2.0.0/es5-shim.min.js" class="button minibutton ">Blame</a>
400
- <a href="/kriskowal/es5-shim/commits/v2.0.0/es5-shim.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
- <span id="L7" rel="#L7">7</span>
416
- <span id="L8" rel="#L8">8</span>
417
- <span id="L9" rel="#L9">9</span>
418
- <span id="L10" rel="#L10">10</span>
419
- <span id="L11" rel="#L11">11</span>
420
- <span id="L12" rel="#L12">12</span>
421
- <span id="L13" rel="#L13">13</span>
422
-
423
- </td>
424
- <td class="blob-line-code">
425
- <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">f</span><span class="p">){</span><span class="s2">&quot;function&quot;</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">f</span><span class="p">)</span><span class="o">:</span><span class="s2">&quot;function&quot;</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">&quot;es5&quot;</span><span class="p">,</span><span class="nx">f</span><span class="p">)</span><span class="o">:</span><span class="nx">f</span><span class="p">()})(</span><span class="kd">function</span><span class="p">(){</span><span class="nb">Function</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bind</span><span class="o">||</span><span class="p">(</span><span class="nb">Function</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bind</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">){</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="k">this</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="s2">&quot;function&quot;</span><span class="o">!=</span><span class="k">typeof</span> <span class="nx">c</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">&quot;Function.prototype.bind called on incompatible &quot;</span><span class="o">+</span><span class="nx">c</span><span class="p">);</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="nx">n</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">arguments</span><span class="p">,</span><span class="mi">1</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="k">if</span><span class="p">(</span><span class="k">this</span> <span class="k">instanceof</span> <span class="nx">b</span><span class="p">){</span><span class="kd">var</span> <span class="nx">e</span><span class="o">=</span><span class="kd">function</span><span class="p">(){};</span><span class="nx">e</span><span class="p">.</span><span class="nx">prototype</span><span class="o">=</span><span class="nx">c</span><span class="p">.</span><span class="nx">prototype</span><span class="p">;</span><span class="kd">var</span> <span class="nx">e</span><span class="o">=</span><span class="k">new</span> <span class="nx">e</span><span class="p">,</span><span class="nx">i</span><span class="o">=</span><span class="nx">c</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span><span class="nx">a</span><span class="p">.</span><span class="nx">concat</span><span class="p">(</span><span class="nx">n</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">arguments</span><span class="p">)));</span><span class="k">return</span> <span class="nb">Object</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span><span class="o">===</span><span class="nx">i</span><span class="o">?</span><span class="nx">i</span><span class="o">:</span><span class="nx">e</span><span class="p">}</span><span class="k">return</span> <span class="nx">c</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">d</span><span class="p">,</span><span class="nx">a</span><span class="p">.</span><span class="nx">concat</span><span class="p">(</span><span class="nx">n</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">arguments</span><span class="p">)))};</span></div><div class='line' id='LC2'><span class="k">return</span> <span class="nx">b</span><span class="p">});</span><span class="kd">var</span> <span class="nx">f</span><span class="o">=</span><span class="nb">Function</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">call</span><span class="p">,</span><span class="nx">m</span><span class="o">=</span><span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">,</span><span class="nx">n</span><span class="o">=</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">slice</span><span class="p">,</span><span class="nx">l</span><span class="o">=</span><span class="nx">f</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="nx">m</span><span class="p">.</span><span class="nx">toString</span><span class="p">),</span><span class="nx">o</span><span class="o">=</span><span class="nx">f</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="nx">m</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">);</span><span class="nx">o</span><span class="p">(</span><span class="nx">m</span><span class="p">,</span><span class="s2">&quot;__defineGetter__&quot;</span><span class="p">)</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">f</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="nx">m</span><span class="p">.</span><span class="nx">__defineGetter__</span><span class="p">),</span><span class="nx">f</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="nx">m</span><span class="p">.</span><span class="nx">__defineSetter__</span><span class="p">),</span><span class="nx">f</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="nx">m</span><span class="p">.</span><span class="nx">__lookupGetter__</span><span class="p">),</span><span class="nx">f</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="nx">m</span><span class="p">.</span><span class="nx">__lookupSetter__</span><span class="p">));</span><span class="nb">Array</span><span class="p">.</span><span class="nx">isArray</span><span class="o">||</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">isArray</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">){</span><span class="k">return</span> <span class="nx">l</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="o">==</span><span class="s2">&quot;[object Array]&quot;</span><span class="p">});</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">forEach</span><span class="o">||</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">forEach</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">,</span><span class="nx">c</span><span class="p">){</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="nx">j</span><span class="p">(</span><span class="k">this</span><span class="p">),</span><span class="nx">b</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span><span class="nx">e</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;&gt;&gt;</span><span class="mi">0</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">l</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="o">!=</span><span class="s2">&quot;[object Function]&quot;</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="o">++</span><span class="nx">b</span><span class="o">&lt;</span><span class="nx">e</span><span class="p">;)</span><span class="nx">b</span> <span class="k">in</span></div><div class='line' id='LC3'><span class="nx">a</span><span class="o">&amp;&amp;</span><span class="nx">d</span><span class="p">.</span><span class="nx">call</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">b</span><span class="p">],</span><span class="nx">b</span><span class="p">,</span><span class="nx">a</span><span class="p">)});</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">map</span><span class="o">||</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">map</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">,</span><span class="nx">c</span><span class="p">){</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="nx">j</span><span class="p">(</span><span class="k">this</span><span class="p">),</span><span class="nx">b</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;&gt;&gt;</span><span class="mi">0</span><span class="p">,</span><span class="nx">e</span><span class="o">=</span><span class="nb">Array</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="nx">l</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="o">!=</span><span class="s2">&quot;[object Function]&quot;</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="nx">d</span><span class="o">+</span><span class="s2">&quot; is not a function&quot;</span><span class="p">);</span><span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">b</span><span class="p">;</span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="nx">i</span> <span class="k">in</span> <span class="nx">a</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">e</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="o">=</span><span class="nx">d</span><span class="p">.</span><span class="nx">call</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">i</span><span class="p">],</span><span class="nx">i</span><span class="p">,</span><span class="nx">a</span><span class="p">));</span><span class="k">return</span> <span class="nx">e</span><span class="p">});</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">filter</span><span class="o">||</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">filter</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">,</span><span class="nx">c</span><span class="p">){</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="nx">j</span><span class="p">(</span><span class="k">this</span><span class="p">),</span><span class="nx">b</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;&gt;&gt;</span><span class="mi">0</span><span class="p">,</span><span class="nx">e</span><span class="o">=</span><span class="p">[],</span><span class="nx">i</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">l</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="o">!=</span><span class="s2">&quot;[object Function]&quot;</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="nx">d</span><span class="o">+</span><span class="s2">&quot; is not a function&quot;</span><span class="p">);</span><span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">f</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">f</span><span class="o">&lt;</span><span class="nx">b</span><span class="p">;</span><span class="nx">f</span><span class="o">++</span><span class="p">)</span><span class="k">if</span><span class="p">(</span><span class="nx">f</span> <span class="k">in</span> <span class="nx">a</span><span class="p">){</span><span class="nx">i</span><span class="o">=</span><span class="nx">a</span><span class="p">[</span><span class="nx">f</span><span class="p">];</span><span class="nx">d</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">c</span><span class="p">,</span><span class="nx">i</span><span class="p">,</span><span class="nx">f</span><span class="p">,</span><span class="nx">a</span><span class="p">)</span><span class="o">&amp;&amp;</span><span class="nx">e</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">i</span><span class="p">)}</span><span class="k">return</span> <span class="nx">e</span><span class="p">});</span></div><div class='line' id='LC4'><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">every</span><span class="o">||</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">every</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">,</span><span class="nx">c</span><span class="p">){</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="nx">j</span><span class="p">(</span><span class="k">this</span><span class="p">),</span><span class="nx">b</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;&gt;&gt;</span><span class="mi">0</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">l</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="o">!=</span><span class="s2">&quot;[object Function]&quot;</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="nx">d</span><span class="o">+</span><span class="s2">&quot; is not a function&quot;</span><span class="p">);</span><span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">e</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">e</span><span class="o">&lt;</span><span class="nx">b</span><span class="p">;</span><span class="nx">e</span><span class="o">++</span><span class="p">)</span><span class="k">if</span><span class="p">(</span><span class="nx">e</span> <span class="k">in</span> <span class="nx">a</span><span class="o">&amp;&amp;!</span><span class="nx">d</span><span class="p">.</span><span class="nx">call</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">e</span><span class="p">],</span><span class="nx">e</span><span class="p">,</span><span class="nx">a</span><span class="p">))</span><span class="k">return</span> <span class="kc">false</span><span class="p">;</span><span class="k">return</span> <span class="kc">true</span><span class="p">});</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">some</span><span class="o">||</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">some</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">,</span><span class="nx">c</span><span class="p">){</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="nx">j</span><span class="p">(</span><span class="k">this</span><span class="p">),</span><span class="nx">b</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;&gt;&gt;</span><span class="mi">0</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">l</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="o">!=</span><span class="s2">&quot;[object Function]&quot;</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="nx">d</span><span class="o">+</span><span class="s2">&quot; is not a function&quot;</span><span class="p">);</span><span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">e</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">e</span><span class="o">&lt;</span><span class="nx">b</span><span class="p">;</span><span class="nx">e</span><span class="o">++</span><span class="p">)</span><span class="k">if</span><span class="p">(</span><span class="nx">e</span> <span class="k">in</span> <span class="nx">a</span><span class="o">&amp;&amp;</span><span class="nx">d</span><span class="p">.</span><span class="nx">call</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">e</span><span class="p">],</span><span class="nx">e</span><span class="p">,</span><span class="nx">a</span><span class="p">))</span><span class="k">return</span> <span class="kc">true</span><span class="p">;</span><span class="k">return</span> <span class="kc">false</span><span class="p">});</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">reduce</span><span class="o">||</span></div><div class='line' id='LC5'><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">reduce</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">){</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="nx">j</span><span class="p">(</span><span class="k">this</span><span class="p">),</span><span class="nx">a</span><span class="o">=</span><span class="nx">c</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;&gt;&gt;</span><span class="mi">0</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">l</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="o">!=</span><span class="s2">&quot;[object Function]&quot;</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="nx">d</span><span class="o">+</span><span class="s2">&quot; is not a function&quot;</span><span class="p">);</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">a</span><span class="o">&amp;&amp;</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="o">==</span><span class="mi">1</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">&quot;reduce of empty array with no initial value&quot;</span><span class="p">);</span><span class="kd">var</span> <span class="nx">b</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="nx">e</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;=</span><span class="mi">2</span><span class="p">)</span><span class="nx">e</span><span class="o">=</span><span class="nx">arguments</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span><span class="k">else</span><span class="p">{</span><span class="k">do</span><span class="p">{</span><span class="k">if</span><span class="p">(</span><span class="nx">b</span> <span class="k">in</span> <span class="nx">c</span><span class="p">){</span><span class="nx">e</span><span class="o">=</span><span class="nx">c</span><span class="p">[</span><span class="nx">b</span><span class="o">++</span><span class="p">];</span><span class="k">break</span><span class="p">}</span><span class="k">if</span><span class="p">(</span><span class="o">++</span><span class="nx">b</span><span class="o">&gt;=</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="s2">&quot;reduce of empty array with no initial value&quot;</span><span class="p">);}</span><span class="k">while</span><span class="p">(</span><span class="mi">1</span><span class="p">)}</span><span class="k">for</span><span class="p">(;</span><span class="nx">b</span><span class="o">&lt;</span><span class="nx">a</span><span class="p">;</span><span class="nx">b</span><span class="o">++</span><span class="p">)</span><span class="nx">b</span> <span class="k">in</span> <span class="nx">c</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">e</span><span class="o">=</span><span class="nx">d</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">void</span> <span class="mi">0</span><span class="p">,</span><span class="nx">e</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">b</span><span class="p">,</span><span class="nx">c</span><span class="p">));</span><span class="k">return</span> <span class="nx">e</span><span class="p">});</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">reduceRight</span><span class="o">||</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">reduceRight</span><span class="o">=</span></div><div class='line' id='LC6'><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">){</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="nx">j</span><span class="p">(</span><span class="k">this</span><span class="p">),</span><span class="nx">a</span><span class="o">=</span><span class="nx">c</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;&gt;&gt;</span><span class="mi">0</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">l</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="o">!=</span><span class="s2">&quot;[object Function]&quot;</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="nx">d</span><span class="o">+</span><span class="s2">&quot; is not a function&quot;</span><span class="p">);</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">a</span><span class="o">&amp;&amp;</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="o">==</span><span class="mi">1</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">&quot;reduceRight of empty array with no initial value&quot;</span><span class="p">);</span><span class="kd">var</span> <span class="nx">b</span><span class="p">,</span><span class="nx">a</span><span class="o">=</span><span class="nx">a</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;=</span><span class="mi">2</span><span class="p">)</span><span class="nx">b</span><span class="o">=</span><span class="nx">arguments</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span><span class="k">else</span><span class="p">{</span><span class="k">do</span><span class="p">{</span><span class="k">if</span><span class="p">(</span><span class="nx">a</span> <span class="k">in</span> <span class="nx">c</span><span class="p">){</span><span class="nx">b</span><span class="o">=</span><span class="nx">c</span><span class="p">[</span><span class="nx">a</span><span class="o">--</span><span class="p">];</span><span class="k">break</span><span class="p">}</span><span class="k">if</span><span class="p">(</span><span class="o">--</span><span class="nx">a</span><span class="o">&lt;</span><span class="mi">0</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">&quot;reduceRight of empty array with no initial value&quot;</span><span class="p">);}</span><span class="k">while</span><span class="p">(</span><span class="mi">1</span><span class="p">)}</span><span class="k">do</span> <span class="nx">a</span> <span class="k">in</span> <span class="k">this</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">b</span><span class="o">=</span><span class="nx">d</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">void</span> <span class="mi">0</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">a</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">while</span><span class="p">(</span><span class="nx">a</span><span class="o">--</span><span class="p">);</span><span class="k">return</span> <span class="nx">b</span><span class="p">});</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">indexOf</span><span class="o">||</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">indexOf</span><span class="o">=</span></div><div class='line' id='LC7'><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">){</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="nx">j</span><span class="p">(</span><span class="k">this</span><span class="p">),</span><span class="nx">a</span><span class="o">=</span><span class="nx">c</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;&gt;&gt;</span><span class="mi">0</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">a</span><span class="p">)</span><span class="k">return</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span><span class="kd">var</span> <span class="nx">b</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;</span><span class="mi">1</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">b</span><span class="o">=</span><span class="nx">p</span><span class="p">(</span><span class="nx">arguments</span><span class="p">[</span><span class="mi">1</span><span class="p">]));</span><span class="k">for</span><span class="p">(</span><span class="nx">b</span><span class="o">=</span><span class="nx">b</span><span class="o">&gt;=</span><span class="mi">0</span><span class="o">?</span><span class="nx">b</span><span class="o">:</span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="nx">a</span><span class="o">+</span><span class="nx">b</span><span class="p">);</span><span class="nx">b</span><span class="o">&lt;</span><span class="nx">a</span><span class="p">;</span><span class="nx">b</span><span class="o">++</span><span class="p">)</span><span class="k">if</span><span class="p">(</span><span class="nx">b</span> <span class="k">in</span> <span class="nx">c</span><span class="o">&amp;&amp;</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">d</span><span class="p">)</span><span class="k">return</span> <span class="nx">b</span><span class="p">;</span><span class="k">return</span><span class="o">-</span><span class="mi">1</span><span class="p">});</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">lastIndexOf</span><span class="o">||</span><span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">lastIndexOf</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">){</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="nx">j</span><span class="p">(</span><span class="k">this</span><span class="p">),</span><span class="nx">a</span><span class="o">=</span><span class="nx">c</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;&gt;&gt;</span><span class="mi">0</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">a</span><span class="p">)</span><span class="k">return</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span><span class="kd">var</span> <span class="nx">b</span><span class="o">=</span><span class="nx">a</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="o">&gt;</span><span class="mi">1</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">b</span><span class="o">=</span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="nx">p</span><span class="p">(</span><span class="nx">arguments</span><span class="p">[</span><span class="mi">1</span><span class="p">])));</span><span class="k">for</span><span class="p">(</span><span class="nx">b</span><span class="o">=</span><span class="nx">b</span><span class="o">&gt;=</span><span class="mi">0</span><span class="o">?</span><span class="nx">b</span><span class="o">:</span><span class="nx">a</span><span class="o">-</span><span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">b</span><span class="p">);</span><span class="nx">b</span><span class="o">&gt;=</span><span class="mi">0</span><span class="p">;</span><span class="nx">b</span><span class="o">--</span><span class="p">)</span><span class="k">if</span><span class="p">(</span><span class="nx">b</span> <span class="k">in</span> <span class="nx">c</span><span class="o">&amp;&amp;</span><span class="nx">d</span><span class="o">===</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">b</span><span class="p">;</span><span class="k">return</span><span class="o">-</span><span class="mi">1</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">keys</span><span class="p">){</span><span class="kd">var</span> <span class="nx">q</span><span class="o">=!</span><span class="mi">0</span><span class="p">,</span><span class="nx">r</span><span class="o">=</span><span class="s2">&quot;toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor&quot;</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s2">&quot; &quot;</span><span class="p">),</span></div><div class='line' id='LC8'><span class="nx">s</span><span class="o">=</span><span class="nx">r</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span><span class="nx">t</span><span class="p">;</span><span class="k">for</span><span class="p">(</span><span class="nx">t</span> <span class="k">in</span><span class="p">{</span><span class="nx">toString</span><span class="o">:</span><span class="kc">null</span><span class="p">})</span><span class="nx">q</span><span class="o">=!</span><span class="mi">1</span><span class="p">;</span><span class="nb">Object</span><span class="p">.</span><span class="nx">keys</span><span class="o">=</span><span class="kd">function</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="k">typeof</span> <span class="nx">d</span><span class="o">!=</span><span class="s2">&quot;object&quot;</span><span class="o">&amp;&amp;</span><span class="k">typeof</span> <span class="nx">d</span><span class="o">!=</span><span class="s2">&quot;function&quot;</span><span class="o">||</span><span class="nx">d</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">&quot;Object.keys called on a non-object&quot;</span><span class="p">);</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="p">[],</span><span class="nx">a</span><span class="p">;</span><span class="k">for</span><span class="p">(</span><span class="nx">a</span> <span class="k">in</span> <span class="nx">d</span><span class="p">)</span><span class="nx">o</span><span class="p">(</span><span class="nx">d</span><span class="p">,</span><span class="nx">a</span><span class="p">)</span><span class="o">&amp;&amp;</span><span class="nx">c</span><span class="p">.</span><span class="nx">push</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="nx">q</span><span class="p">)</span><span class="k">for</span><span class="p">(</span><span class="nx">a</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">a</span><span class="o">&lt;</span><span class="nx">s</span><span class="p">;</span><span class="nx">a</span><span class="o">++</span><span class="p">){</span><span class="kd">var</span> <span class="nx">b</span><span class="o">=</span><span class="nx">r</span><span class="p">[</span><span class="nx">a</span><span class="p">];</span><span class="nx">o</span><span class="p">(</span><span class="nx">d</span><span class="p">,</span><span class="nx">b</span><span class="p">)</span><span class="o">&amp;&amp;</span><span class="nx">c</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">b</span><span class="p">)}</span><span class="k">return</span> <span class="nx">c</span><span class="p">}}</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nb">Date</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toISOString</span><span class="o">||-</span><span class="mi">1</span><span class="o">===</span><span class="p">(</span><span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="o">-</span><span class="mi">621987552</span><span class="nx">E5</span><span class="p">)).</span><span class="nx">toISOString</span><span class="p">().</span><span class="nx">indexOf</span><span class="p">(</span><span class="s2">&quot;-000001&quot;</span><span class="p">))</span><span class="nb">Date</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toISOString</span><span class="o">=</span><span class="kd">function</span><span class="p">(){</span><span class="kd">var</span> <span class="nx">d</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">b</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nb">isFinite</span><span class="p">(</span><span class="k">this</span><span class="p">))</span><span class="k">throw</span> <span class="k">new</span> <span class="nx">RangeError</span><span class="p">(</span><span class="s2">&quot;Date.prototype.toISOString called on non-finite value.&quot;</span><span class="p">);</span></div><div class='line' id='LC9'><span class="nx">d</span><span class="o">=</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">getUTCMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="k">this</span><span class="p">.</span><span class="nx">getUTCDate</span><span class="p">(),</span><span class="k">this</span><span class="p">.</span><span class="nx">getUTCHours</span><span class="p">(),</span><span class="k">this</span><span class="p">.</span><span class="nx">getUTCMinutes</span><span class="p">(),</span><span class="k">this</span><span class="p">.</span><span class="nx">getUTCSeconds</span><span class="p">()];</span><span class="nx">b</span><span class="o">=</span><span class="k">this</span><span class="p">.</span><span class="nx">getUTCFullYear</span><span class="p">();</span><span class="nx">b</span><span class="o">=</span><span class="p">(</span><span class="nx">b</span><span class="o">&lt;</span><span class="mi">0</span><span class="o">?</span><span class="s2">&quot;-&quot;</span><span class="o">:</span><span class="nx">b</span><span class="o">&gt;</span><span class="mi">9999</span><span class="o">?</span><span class="s2">&quot;+&quot;</span><span class="o">:</span><span class="s2">&quot;&quot;</span><span class="p">)</span><span class="o">+</span><span class="p">(</span><span class="s2">&quot;00000&quot;</span><span class="o">+</span><span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">b</span><span class="p">)).</span><span class="nx">slice</span><span class="p">(</span><span class="mi">0</span><span class="o">&lt;=</span><span class="nx">b</span><span class="o">&amp;&amp;</span><span class="nx">b</span><span class="o">&lt;=</span><span class="mi">9999</span><span class="o">?-</span><span class="mi">4</span><span class="o">:-</span><span class="mi">6</span><span class="p">);</span><span class="k">for</span><span class="p">(</span><span class="nx">c</span><span class="o">=</span><span class="nx">d</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="nx">c</span><span class="o">--</span><span class="p">;){</span><span class="nx">a</span><span class="o">=</span><span class="nx">d</span><span class="p">[</span><span class="nx">c</span><span class="p">];</span><span class="nx">a</span><span class="o">&lt;</span><span class="mi">10</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">d</span><span class="p">[</span><span class="nx">c</span><span class="p">]</span><span class="o">=</span><span class="s2">&quot;0&quot;</span><span class="o">+</span><span class="nx">a</span><span class="p">)}</span><span class="k">return</span> <span class="nx">b</span><span class="o">+</span><span class="s2">&quot;-&quot;</span><span class="o">+</span><span class="nx">d</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="nx">join</span><span class="p">(</span><span class="s2">&quot;-&quot;</span><span class="p">)</span><span class="o">+</span><span class="s2">&quot;T&quot;</span><span class="o">+</span><span class="nx">d</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">2</span><span class="p">).</span><span class="nx">join</span><span class="p">(</span><span class="s2">&quot;:&quot;</span><span class="p">)</span><span class="o">+</span><span class="s2">&quot;.&quot;</span><span class="o">+</span><span class="p">(</span><span class="s2">&quot;000&quot;</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">getUTCMilliseconds</span><span class="p">()).</span><span class="nx">slice</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span><span class="o">+</span><span class="s2">&quot;Z&quot;</span><span class="p">};</span><span class="nb">Date</span><span class="p">.</span><span class="nx">now</span><span class="o">||</span><span class="p">(</span><span class="nb">Date</span><span class="p">.</span><span class="nx">now</span><span class="o">=</span><span class="kd">function</span><span class="p">(){</span><span class="k">return</span><span class="p">(</span><span class="k">new</span> <span class="nb">Date</span><span class="p">).</span><span class="nx">getTime</span><span class="p">()});</span><span class="nb">Date</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toJSON</span><span class="o">||</span><span class="p">(</span><span class="nb">Date</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toJSON</span><span class="o">=</span><span class="kd">function</span><span class="p">(){</span><span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="k">this</span><span class="p">.</span><span class="nx">toISOString</span><span class="o">!=</span></div><div class='line' id='LC10'><span class="s2">&quot;function&quot;</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">&quot;toISOString property is not callable&quot;</span><span class="p">);</span><span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">toISOString</span><span class="p">()});</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nb">Date</span><span class="p">.</span><span class="nx">parse</span><span class="o">||</span><span class="mi">864</span><span class="nx">E13</span><span class="o">!==</span><span class="nb">Date</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s2">&quot;+275760-09-13T00:00:00.000Z&quot;</span><span class="p">)){</span><span class="kd">var</span> <span class="nx">g</span><span class="o">=</span><span class="nb">Date</span><span class="p">,</span><span class="nx">f</span><span class="o">=</span><span class="kd">function</span> <span class="nx">c</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">e</span><span class="p">,</span><span class="nx">f</span><span class="p">,</span><span class="nx">h</span><span class="p">,</span><span class="nx">j</span><span class="p">,</span><span class="nx">l</span><span class="p">){</span><span class="kd">var</span> <span class="nx">k</span><span class="o">=</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="k">this</span> <span class="k">instanceof</span> <span class="nx">g</span><span class="p">){</span><span class="nx">k</span><span class="o">=</span><span class="nx">k</span><span class="o">==</span><span class="mi">1</span><span class="o">&amp;&amp;</span><span class="nb">String</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="o">?</span><span class="k">new</span> <span class="nx">g</span><span class="p">(</span><span class="nx">c</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">a</span><span class="p">))</span><span class="o">:</span><span class="nx">k</span><span class="o">&gt;=</span><span class="mi">7</span><span class="o">?</span><span class="k">new</span> <span class="nx">g</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">e</span><span class="p">,</span><span class="nx">f</span><span class="p">,</span><span class="nx">h</span><span class="p">,</span><span class="nx">j</span><span class="p">,</span><span class="nx">l</span><span class="p">)</span><span class="o">:</span><span class="nx">k</span><span class="o">&gt;=</span><span class="mi">6</span><span class="o">?</span><span class="k">new</span> <span class="nx">g</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">e</span><span class="p">,</span><span class="nx">f</span><span class="p">,</span><span class="nx">h</span><span class="p">,</span><span class="nx">j</span><span class="p">)</span><span class="o">:</span><span class="nx">k</span><span class="o">&gt;=</span><span class="mi">5</span><span class="o">?</span><span class="k">new</span> <span class="nx">g</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">e</span><span class="p">,</span><span class="nx">f</span><span class="p">,</span><span class="nx">h</span><span class="p">)</span><span class="o">:</span><span class="nx">k</span><span class="o">&gt;=</span><span class="mi">4</span><span class="o">?</span><span class="k">new</span> <span class="nx">g</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">e</span><span class="p">,</span><span class="nx">f</span><span class="p">)</span><span class="o">:</span><span class="nx">k</span><span class="o">&gt;=</span><span class="mi">3</span><span class="o">?</span><span class="k">new</span> <span class="nx">g</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">e</span><span class="p">)</span><span class="o">:</span><span class="nx">k</span><span class="o">&gt;=</span><span class="mi">2</span><span class="o">?</span><span class="k">new</span> <span class="nx">g</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="o">:</span><span class="nx">k</span><span class="o">&gt;=</span><span class="mi">1</span><span class="o">?</span><span class="k">new</span> <span class="nx">g</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span><span class="o">:</span><span class="k">new</span> <span class="nx">g</span><span class="p">;</span><span class="nx">k</span><span class="p">.</span><span class="nx">constructor</span><span class="o">=</span><span class="nx">c</span><span class="p">;</span><span class="k">return</span> <span class="nx">k</span><span class="p">}</span><span class="k">return</span> <span class="nx">g</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span><span class="nx">arguments</span><span class="p">)},</span><span class="nx">u</span><span class="o">=</span><span class="nb">RegExp</span><span class="p">(</span><span class="s2">&quot;^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$&quot;</span><span class="p">),</span></div><div class='line' id='LC11'><span class="nx">h</span><span class="p">;</span><span class="k">for</span><span class="p">(</span><span class="nx">h</span> <span class="k">in</span> <span class="nx">g</span><span class="p">)</span><span class="nx">f</span><span class="p">[</span><span class="nx">h</span><span class="p">]</span><span class="o">=</span><span class="nx">g</span><span class="p">[</span><span class="nx">h</span><span class="p">];</span><span class="nx">f</span><span class="p">.</span><span class="nx">now</span><span class="o">=</span><span class="nx">g</span><span class="p">.</span><span class="nx">now</span><span class="p">;</span><span class="nx">f</span><span class="p">.</span><span class="nx">UTC</span><span class="o">=</span><span class="nx">g</span><span class="p">.</span><span class="nx">UTC</span><span class="p">;</span><span class="nx">f</span><span class="p">.</span><span class="nx">prototype</span><span class="o">=</span><span class="nx">g</span><span class="p">.</span><span class="nx">prototype</span><span class="p">;</span><span class="nx">f</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">constructor</span><span class="o">=</span><span class="nx">f</span><span class="p">;</span><span class="nx">f</span><span class="p">.</span><span class="nx">parse</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">c</span><span class="p">){</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="nx">u</span><span class="p">.</span><span class="nx">exec</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="nx">a</span><span class="p">){</span><span class="nx">a</span><span class="p">.</span><span class="nx">shift</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="o">=</span><span class="mi">1</span><span class="p">;</span><span class="nx">b</span><span class="o">&lt;</span><span class="mi">7</span><span class="p">;</span><span class="nx">b</span><span class="o">++</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="o">=+</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="o">||</span><span class="p">(</span><span class="nx">b</span><span class="o">&lt;</span><span class="mi">3</span><span class="o">?</span><span class="mi">1</span><span class="o">:</span><span class="mi">0</span><span class="p">));</span><span class="nx">b</span><span class="o">==</span><span class="mi">1</span><span class="o">&amp;&amp;</span><span class="nx">a</span><span class="p">[</span><span class="nx">b</span><span class="p">]</span><span class="o">--</span><span class="p">}</span><span class="kd">var</span> <span class="nx">e</span><span class="o">=+</span><span class="nx">a</span><span class="p">.</span><span class="nx">pop</span><span class="p">(),</span><span class="nx">f</span><span class="o">=+</span><span class="nx">a</span><span class="p">.</span><span class="nx">pop</span><span class="p">(),</span><span class="nx">h</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">pop</span><span class="p">(),</span><span class="nx">b</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="nx">h</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="nx">f</span><span class="o">&gt;</span><span class="mi">23</span><span class="o">||</span><span class="nx">e</span><span class="o">&gt;</span><span class="mi">59</span><span class="p">)</span><span class="k">return</span> <span class="kc">NaN</span><span class="p">;</span><span class="nx">b</span><span class="o">=</span><span class="p">(</span><span class="nx">f</span><span class="o">*</span><span class="mi">60</span><span class="o">+</span><span class="nx">e</span><span class="p">)</span><span class="o">*</span><span class="mi">6</span><span class="nx">E4</span><span class="o">*</span><span class="p">(</span><span class="nx">h</span><span class="o">==</span><span class="s2">&quot;+&quot;</span><span class="o">?-</span><span class="mi">1</span><span class="o">:</span><span class="mi">1</span><span class="p">)}</span><span class="nx">e</span><span class="o">=+</span><span class="nx">a</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span><span class="k">if</span><span class="p">(</span><span class="mi">0</span><span class="o">&lt;=</span><span class="nx">e</span><span class="o">&amp;&amp;</span><span class="nx">e</span><span class="o">&lt;=</span><span class="mi">99</span><span class="p">){</span><span class="nx">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">=</span><span class="nx">e</span><span class="o">+</span><span class="mi">400</span><span class="p">;</span><span class="k">return</span> <span class="nx">g</span><span class="p">.</span><span class="nx">UTC</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span><span class="nx">a</span><span class="p">)</span><span class="o">+</span><span class="nx">b</span><span class="o">-</span><span class="mi">126227808</span><span class="nx">E5</span><span class="p">}</span><span class="k">return</span> <span class="nx">g</span><span class="p">.</span><span class="nx">UTC</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span><span class="nx">a</span><span class="p">)</span><span class="o">+</span><span class="nx">b</span><span class="p">}</span><span class="k">return</span> <span class="nx">g</span><span class="p">.</span><span class="nx">parse</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span><span class="nx">arguments</span><span class="p">)};</span><span class="nb">Date</span><span class="o">=</span><span class="nx">f</span><span class="p">}</span><span class="nx">h</span><span class="o">=</span><span class="s2">&quot;\t\n\x0B\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff&quot;</span><span class="p">;</span></div><div class='line' id='LC12'><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nb">String</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">trim</span><span class="o">||</span><span class="nx">h</span><span class="p">.</span><span class="nx">trim</span><span class="p">()){</span><span class="nx">h</span><span class="o">=</span><span class="s2">&quot;[&quot;</span><span class="o">+</span><span class="nx">h</span><span class="o">+</span><span class="s2">&quot;]&quot;</span><span class="p">;</span><span class="kd">var</span> <span class="nx">v</span><span class="o">=</span><span class="nb">RegExp</span><span class="p">(</span><span class="s2">&quot;^&quot;</span><span class="o">+</span><span class="nx">h</span><span class="o">+</span><span class="nx">h</span><span class="o">+</span><span class="s2">&quot;*&quot;</span><span class="p">),</span><span class="nx">w</span><span class="o">=</span><span class="nb">RegExp</span><span class="p">(</span><span class="nx">h</span><span class="o">+</span><span class="nx">h</span><span class="o">+</span><span class="s2">&quot;*$&quot;</span><span class="p">);</span><span class="nb">String</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">trim</span><span class="o">=</span><span class="kd">function</span><span class="p">(){</span><span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="o">===</span><span class="k">void</span> <span class="mi">0</span><span class="o">||</span><span class="k">this</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">&quot;can&#39;t convert &quot;</span><span class="o">+</span><span class="k">this</span><span class="o">+</span><span class="s2">&quot; to object&quot;</span><span class="p">);</span><span class="k">return</span> <span class="nb">String</span><span class="p">(</span><span class="k">this</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="nx">v</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">)}}</span><span class="kd">var</span> <span class="nx">p</span><span class="o">=</span><span class="kd">function</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="p">;</span><span class="nx">c</span><span class="o">!==</span><span class="nx">c</span><span class="o">?</span><span class="nx">c</span><span class="o">=</span><span class="mi">0</span><span class="o">:</span><span class="nx">c</span><span class="o">!==</span><span class="mi">0</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">c</span><span class="o">!==</span><span class="mi">1</span><span class="o">/</span><span class="mi">0</span><span class="o">&amp;&amp;</span><span class="nx">c</span><span class="o">!==-</span><span class="p">(</span><span class="mi">1</span><span class="o">/</span><span class="mi">0</span><span class="p">))</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">c</span><span class="o">=</span><span class="p">(</span><span class="nx">c</span><span class="o">&gt;</span><span class="mi">0</span><span class="o">||-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">c</span><span class="p">)));</span><span class="k">return</span> <span class="nx">c</span><span class="p">},</span><span class="nx">x</span><span class="o">=</span><span class="s2">&quot;a&quot;</span><span class="o">!=</span><span class="s2">&quot;a&quot;</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">j</span><span class="o">=</span><span class="kd">function</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="nx">c</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">&quot;can&#39;t convert &quot;</span><span class="o">+</span><span class="nx">c</span><span class="o">+</span><span class="s2">&quot; to object&quot;</span><span class="p">);</span><span class="k">return</span> <span class="nx">x</span><span class="o">&amp;&amp;</span><span class="k">typeof</span> <span class="nx">c</span><span class="o">==</span><span class="s2">&quot;string&quot;</span><span class="o">&amp;&amp;</span><span class="nx">c</span><span class="o">?</span><span class="nx">c</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)</span><span class="o">:</span></div><div class='line' id='LC13'><span class="nb">Object</span><span class="p">(</span><span class="nx">c</span><span class="p">)}});</span></div></pre></div>
426
- </td>
427
- </tr>
428
- </table>
429
- </div>
430
-
431
- </div>
432
- </div>
433
-
434
- <a href="#jump-to-line" rel="facebox" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a>
435
- <div id="jump-to-line" style="display:none">
436
- <h2>Jump to Line</h2>
437
- <form accept-charset="UTF-8" class="js-jump-to-line-form">
438
- <input class="textfield js-jump-to-line-field" type="text">
439
- <div class="full-button">
440
- <button type="submit" class="button">Go</button>
441
- </div>
442
- </form>
443
- </div>
444
-
445
- </div>
446
- </div>
447
- </div>
448
-
449
- <div id="js-frame-loading-template" class="frame frame-loading large-loading-area" style="display:none;">
450
- <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">
451
- </div>
452
-
453
-
454
- </div>
455
- </div>
456
- <div class="context-overlay"></div>
457
- </div>
458
-
459
- <div id="footer-push"></div><!-- hack for sticky footer -->
460
- </div><!-- end of wrapper - hack for sticky footer -->
461
-
462
- <!-- footer -->
463
- <div id="footer">
464
- <div class="container clearfix">
465
-
466
- <dl class="footer_nav">
467
- <dt>GitHub</dt>
468
- <dd><a href="https://github.com/about">About us</a></dd>
469
- <dd><a href="https://github.com/blog">Blog</a></dd>
470
- <dd><a href="https://github.com/contact">Contact &amp; support</a></dd>
471
- <dd><a href="http://enterprise.github.com/">GitHub Enterprise</a></dd>
472
- <dd><a href="http://status.github.com/">Site status</a></dd>
473
- </dl>
474
-
475
- <dl class="footer_nav">
476
- <dt>Applications</dt>
477
- <dd><a href="http://mac.github.com/">GitHub for Mac</a></dd>
478
- <dd><a href="http://windows.github.com/">GitHub for Windows</a></dd>
479
- <dd><a href="http://eclipse.github.com/">GitHub for Eclipse</a></dd>
480
- <dd><a href="http://mobile.github.com/">GitHub mobile apps</a></dd>
481
- </dl>
482
-
483
- <dl class="footer_nav">
484
- <dt>Services</dt>
485
- <dd><a href="http://get.gaug.es/">Gauges: Web analytics</a></dd>
486
- <dd><a href="http://speakerdeck.com">Speaker Deck: Presentations</a></dd>
487
- <dd><a href="https://gist.github.com">Gist: Code snippets</a></dd>
488
- <dd><a href="http://jobs.github.com/">Job board</a></dd>
489
- </dl>
490
-
491
- <dl class="footer_nav">
492
- <dt>Documentation</dt>
493
- <dd><a href="http://help.github.com/">GitHub Help</a></dd>
494
- <dd><a href="http://developer.github.com/">Developer API</a></dd>
495
- <dd><a href="http://github.github.com/github-flavored-markdown/">GitHub Flavored Markdown</a></dd>
496
- <dd><a href="http://pages.github.com/">GitHub Pages</a></dd>
497
- </dl>
498
-
499
- <dl class="footer_nav">
500
- <dt>More</dt>
501
- <dd><a href="http://training.github.com/">Training</a></dd>
502
- <dd><a href="https://github.com/edu">Students &amp; teachers</a></dd>
503
- <dd><a href="http://shop.github.com">The Shop</a></dd>
504
- <dd><a href="/plans">Plans &amp; pricing</a></dd>
505
- <dd><a href="http://octodex.github.com/">The Octodex</a></dd>
506
- </dl>
507
-
508
- <hr class="footer-divider">
509
-
510
-
511
- <p class="right">&copy; 2013 <span title="0.14683s from fe2.rs.github.com">GitHub</span>, Inc. All rights reserved.</p>
512
- <a class="left" href="https://github.com/">
513
- <span class="mega-icon mega-icon-invertocat"></span>
514
- </a>
515
- <ul id="legal">
516
- <li><a href="https://github.com/site/terms">Terms of Service</a></li>
517
- <li><a href="https://github.com/site/privacy">Privacy</a></li>
518
- <li><a href="https://github.com/security">Security</a></li>
519
- </ul>
520
-
521
- </div><!-- /.container -->
522
-
523
- </div><!-- /.#footer -->
524
-
525
-
526
- <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
527
- <div class="fullscreen-container js-fullscreen-container">
528
- <div class="textarea-wrap">
529
- <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea>
530
- <div class="suggester-container">
531
- <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester"
532
- data-url="/kriskowal/es5-shim/suggestions/commit">
533
- </div>
534
- </div>
535
- </div>
536
- </div>
537
- <div class="fullscreen-sidebar">
538
- <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode">
539
- <span class="mega-icon mega-icon-normalscreen"></span>
540
- </a>
541
- <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards"
542
- title="Switch themes">
543
- <span class="mini-icon mini-icon-brightness"></span>
544
- </a>
545
- </div>
546
- </div>
547
-
548
-
549
-
550
- <div id="ajax-error-message" class="flash flash-error">
551
- <span class="mini-icon mini-icon-exclamation"></span>
552
- Something went wrong with that request. Please try again.
553
- <a href="#" class="mini-icon mini-icon-remove-close ajax-error-dismiss"></a>
554
- </div>
555
-
556
-
557
-
558
- <span id='server_response_time' data-time='0.14725' data-host='fe2'></span>
559
-
560
- </body>
561
- </html>
562
-
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", definition);
12
+ // CommonJS and <script>
13
+ } else {
14
+ definition();
15
+ }
16
+ })(function () {
17
+
18
+ /**
19
+ * Brings an environment as close to ECMAScript 5 compliance
20
+ * as is possible with the facilities of erstwhile engines.
21
+ *
22
+ * Annotated ES5: http://es5.github.com/ (specific links below)
23
+ * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
24
+ * Required reading: http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/
25
+ */
26
+
27
+ //
28
+ // Function
29
+ // ========
30
+ //
31
+
32
+ // ES-5 15.3.4.5
33
+ // http://es5.github.com/#x15.3.4.5
34
+
35
+ if (!Function.prototype.bind) {
36
+ Function.prototype.bind = function bind(that) { // .length is 1
37
+ // 1. Let Target be the this value.
38
+ var target = this;
39
+ // 2. If IsCallable(Target) is false, throw a TypeError exception.
40
+ if (typeof target != "function") {
41
+ throw new TypeError("Function.prototype.bind called on incompatible " + target);
42
+ }
43
+ // 3. Let A be a new (possibly empty) internal list of all of the
44
+ // argument values provided after thisArg (arg1, arg2 etc), in order.
45
+ // XXX slicedArgs will stand in for "A" if used
46
+ var args = slice.call(arguments, 1); // for normal call
47
+ // 4. Let F be a new native ECMAScript object.
48
+ // 11. Set the [[Prototype]] internal property of F to the standard
49
+ // built-in Function prototype object as specified in 15.3.3.1.
50
+ // 12. Set the [[Call]] internal property of F as described in
51
+ // 15.3.4.5.1.
52
+ // 13. Set the [[Construct]] internal property of F as described in
53
+ // 15.3.4.5.2.
54
+ // 14. Set the [[HasInstance]] internal property of F as described in
55
+ // 15.3.4.5.3.
56
+ var bound = function () {
57
+
58
+ if (this instanceof bound) {
59
+ // 15.3.4.5.2 [[Construct]]
60
+ // When the [[Construct]] internal method of a function object,
61
+ // F that was created using the bind function is called with a
62
+ // list of arguments ExtraArgs, the following steps are taken:
63
+ // 1. Let target be the value of F's [[TargetFunction]]
64
+ // internal property.
65
+ // 2. If target has no [[Construct]] internal method, a
66
+ // TypeError exception is thrown.
67
+ // 3. Let boundArgs be the value of F's [[BoundArgs]] internal
68
+ // property.
69
+ // 4. Let args be a new list containing the same values as the
70
+ // list boundArgs in the same order followed by the same
71
+ // values as the list ExtraArgs in the same order.
72
+ // 5. Return the result of calling the [[Construct]] internal
73
+ // method of target providing args as the arguments.
74
+
75
+ var F = function(){};
76
+ F.prototype = target.prototype;
77
+ var self = new F;
78
+
79
+ var result = target.apply(
80
+ self,
81
+ args.concat(slice.call(arguments))
82
+ );
83
+ if (Object(result) === result) {
84
+ return result;
85
+ }
86
+ return self;
87
+
88
+ } else {
89
+ // 15.3.4.5.1 [[Call]]
90
+ // When the [[Call]] internal method of a function object, F,
91
+ // which was created using the bind function is called with a
92
+ // this value and a list of arguments ExtraArgs, the following
93
+ // steps are taken:
94
+ // 1. Let boundArgs be the value of F's [[BoundArgs]] internal
95
+ // property.
96
+ // 2. Let boundThis be the value of F's [[BoundThis]] internal
97
+ // property.
98
+ // 3. Let target be the value of F's [[TargetFunction]] internal
99
+ // property.
100
+ // 4. Let args be a new list containing the same values as the
101
+ // list boundArgs in the same order followed by the same
102
+ // values as the list ExtraArgs in the same order.
103
+ // 5. Return the result of calling the [[Call]] internal method
104
+ // of target providing boundThis as the this value and
105
+ // providing args as the arguments.
106
+
107
+ // equiv: target.call(this, ...boundArgs, ...args)
108
+ return target.apply(
109
+ that,
110
+ args.concat(slice.call(arguments))
111
+ );
112
+
113
+ }
114
+
115
+ };
116
+ // XXX bound.length is never writable, so don't even try
117
+ //
118
+ // 15. If the [[Class]] internal property of Target is "Function", then
119
+ // a. Let L be the length property of Target minus the length of A.
120
+ // b. Set the length own property of F to either 0 or L, whichever is
121
+ // larger.
122
+ // 16. Else set the length own property of F to 0.
123
+ // 17. Set the attributes of the length own property of F to the values
124
+ // specified in 15.3.5.1.
125
+
126
+ // TODO
127
+ // 18. Set the [[Extensible]] internal property of F to true.
128
+
129
+ // TODO
130
+ // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).
131
+ // 20. Call the [[DefineOwnProperty]] internal method of F with
132
+ // arguments "caller", PropertyDescriptor {[[Get]]: thrower, [[Set]]:
133
+ // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and
134
+ // false.
135
+ // 21. Call the [[DefineOwnProperty]] internal method of F with
136
+ // arguments "arguments", PropertyDescriptor {[[Get]]: thrower,
137
+ // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},
138
+ // and false.
139
+
140
+ // TODO
141
+ // NOTE Function objects created using Function.prototype.bind do not
142
+ // have a prototype property or the [[Code]], [[FormalParameters]], and
143
+ // [[Scope]] internal properties.
144
+ // XXX can't delete prototype in pure-js.
145
+
146
+ // 22. Return F.
147
+ return bound;
148
+ };
149
+ }
150
+
151
+ // Shortcut to an often accessed properties, in order to avoid multiple
152
+ // dereference that costs universally.
153
+ // _Please note: Shortcuts are defined after `Function.prototype.bind` as we
154
+ // us it in defining shortcuts.
155
+ var call = Function.prototype.call;
156
+ var prototypeOfArray = Array.prototype;
157
+ var prototypeOfObject = Object.prototype;
158
+ var slice = prototypeOfArray.slice;
159
+ // Having a toString local variable name breaks in Opera so use _toString.
160
+ var _toString = call.bind(prototypeOfObject.toString);
161
+ var owns = call.bind(prototypeOfObject.hasOwnProperty);
162
+
163
+ // If JS engine supports accessors creating shortcuts.
164
+ var defineGetter;
165
+ var defineSetter;
166
+ var lookupGetter;
167
+ var lookupSetter;
168
+ var supportsAccessors;
169
+ if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
170
+ defineGetter = call.bind(prototypeOfObject.__defineGetter__);
171
+ defineSetter = call.bind(prototypeOfObject.__defineSetter__);
172
+ lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
173
+ lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
174
+ }
175
+
176
+ //
177
+ // Array
178
+ // =====
179
+ //
180
+
181
+ // ES5 15.4.3.2
182
+ // http://es5.github.com/#x15.4.3.2
183
+ // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray
184
+ if (!Array.isArray) {
185
+ Array.isArray = function isArray(obj) {
186
+ return _toString(obj) == "[object Array]";
187
+ };
188
+ }
189
+
190
+ // The IsCallable() check in the Array functions
191
+ // has been replaced with a strict check on the
192
+ // internal class of the object to trap cases where
193
+ // the provided function was actually a regular
194
+ // expression literal, which in V8 and
195
+ // JavaScriptCore is a typeof "function". Only in
196
+ // V8 are regular expression literals permitted as
197
+ // reduce parameters, so it is desirable in the
198
+ // general case for the shim to match the more
199
+ // strict and common behavior of rejecting regular
200
+ // expressions.
201
+
202
+ // ES5 15.4.4.18
203
+ // http://es5.github.com/#x15.4.4.18
204
+ // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach
205
+ if (!Array.prototype.forEach) {
206
+ Array.prototype.forEach = function forEach(fun /*, thisp*/) {
207
+ var self = toObject(this),
208
+ thisp = arguments[1],
209
+ i = -1,
210
+ length = self.length >>> 0;
211
+
212
+ // If no callback function or if callback is not a callable function
213
+ if (_toString(fun) != "[object Function]") {
214
+ throw new TypeError(); // TODO message
215
+ }
216
+
217
+ while (++i < length) {
218
+ if (i in self) {
219
+ // Invoke the callback function with call, passing arguments:
220
+ // context, property value, property key, thisArg object context
221
+ fun.call(thisp, self[i], i, self);
222
+ }
223
+ }
224
+ };
225
+ }
226
+
227
+ // ES5 15.4.4.19
228
+ // http://es5.github.com/#x15.4.4.19
229
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map
230
+ if (!Array.prototype.map) {
231
+ Array.prototype.map = function map(fun /*, thisp*/) {
232
+ var self = toObject(this),
233
+ length = self.length >>> 0,
234
+ result = Array(length),
235
+ thisp = arguments[1];
236
+
237
+ // If no callback function or if callback is not a callable function
238
+ if (_toString(fun) != "[object Function]") {
239
+ throw new TypeError(fun + " is not a function");
240
+ }
241
+
242
+ for (var i = 0; i < length; i++) {
243
+ if (i in self)
244
+ result[i] = fun.call(thisp, self[i], i, self);
245
+ }
246
+ return result;
247
+ };
248
+ }
249
+
250
+ // ES5 15.4.4.20
251
+ // http://es5.github.com/#x15.4.4.20
252
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter
253
+ if (!Array.prototype.filter) {
254
+ Array.prototype.filter = function filter(fun /*, thisp */) {
255
+ var self = toObject(this),
256
+ length = self.length >>> 0,
257
+ result = [],
258
+ value,
259
+ thisp = arguments[1];
260
+
261
+ // If no callback function or if callback is not a callable function
262
+ if (_toString(fun) != "[object Function]") {
263
+ throw new TypeError(fun + " is not a function");
264
+ }
265
+
266
+ for (var i = 0; i < length; i++) {
267
+ if (i in self) {
268
+ value = self[i];
269
+ if (fun.call(thisp, value, i, self)) {
270
+ result.push(value);
271
+ }
272
+ }
273
+ }
274
+ return result;
275
+ };
276
+ }
277
+
278
+ // ES5 15.4.4.16
279
+ // http://es5.github.com/#x15.4.4.16
280
+ // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every
281
+ if (!Array.prototype.every) {
282
+ Array.prototype.every = function every(fun /*, thisp */) {
283
+ var self = toObject(this),
284
+ length = self.length >>> 0,
285
+ thisp = arguments[1];
286
+
287
+ // If no callback function or if callback is not a callable function
288
+ if (_toString(fun) != "[object Function]") {
289
+ throw new TypeError(fun + " is not a function");
290
+ }
291
+
292
+ for (var i = 0; i < length; i++) {
293
+ if (i in self && !fun.call(thisp, self[i], i, self)) {
294
+ return false;
295
+ }
296
+ }
297
+ return true;
298
+ };
299
+ }
300
+
301
+ // ES5 15.4.4.17
302
+ // http://es5.github.com/#x15.4.4.17
303
+ // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some
304
+ if (!Array.prototype.some) {
305
+ Array.prototype.some = function some(fun /*, thisp */) {
306
+ var self = toObject(this),
307
+ length = self.length >>> 0,
308
+ thisp = arguments[1];
309
+
310
+ // If no callback function or if callback is not a callable function
311
+ if (_toString(fun) != "[object Function]") {
312
+ throw new TypeError(fun + " is not a function");
313
+ }
314
+
315
+ for (var i = 0; i < length; i++) {
316
+ if (i in self && fun.call(thisp, self[i], i, self)) {
317
+ return true;
318
+ }
319
+ }
320
+ return false;
321
+ };
322
+ }
323
+
324
+ // ES5 15.4.4.21
325
+ // http://es5.github.com/#x15.4.4.21
326
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce
327
+ if (!Array.prototype.reduce) {
328
+ Array.prototype.reduce = function reduce(fun /*, initial*/) {
329
+ var self = toObject(this),
330
+ length = self.length >>> 0;
331
+
332
+ // If no callback function or if callback is not a callable function
333
+ if (_toString(fun) != "[object Function]") {
334
+ throw new TypeError(fun + " is not a function");
335
+ }
336
+
337
+ // no value to return if no initial value and an empty array
338
+ if (!length && arguments.length == 1) {
339
+ throw new TypeError('reduce of empty array with no initial value');
340
+ }
341
+
342
+ var i = 0;
343
+ var result;
344
+ if (arguments.length >= 2) {
345
+ result = arguments[1];
346
+ } else {
347
+ do {
348
+ if (i in self) {
349
+ result = self[i++];
350
+ break;
351
+ }
352
+
353
+ // if array contains no values, no initial value to return
354
+ if (++i >= length) {
355
+ throw new TypeError('reduce of empty array with no initial value');
356
+ }
357
+ } while (true);
358
+ }
359
+
360
+ for (; i < length; i++) {
361
+ if (i in self) {
362
+ result = fun.call(void 0, result, self[i], i, self);
363
+ }
364
+ }
365
+
366
+ return result;
367
+ };
368
+ }
369
+
370
+ // ES5 15.4.4.22
371
+ // http://es5.github.com/#x15.4.4.22
372
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight
373
+ if (!Array.prototype.reduceRight) {
374
+ Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
375
+ var self = toObject(this),
376
+ length = self.length >>> 0;
377
+
378
+ // If no callback function or if callback is not a callable function
379
+ if (_toString(fun) != "[object Function]") {
380
+ throw new TypeError(fun + " is not a function");
381
+ }
382
+
383
+ // no value to return if no initial value, empty array
384
+ if (!length && arguments.length == 1) {
385
+ throw new TypeError('reduceRight of empty array with no initial value');
386
+ }
387
+
388
+ var result, i = length - 1;
389
+ if (arguments.length >= 2) {
390
+ result = arguments[1];
391
+ } else {
392
+ do {
393
+ if (i in self) {
394
+ result = self[i--];
395
+ break;
396
+ }
397
+
398
+ // if array contains no values, no initial value to return
399
+ if (--i < 0) {
400
+ throw new TypeError('reduceRight of empty array with no initial value');
401
+ }
402
+ } while (true);
403
+ }
404
+
405
+ do {
406
+ if (i in this) {
407
+ result = fun.call(void 0, result, self[i], i, self);
408
+ }
409
+ } while (i--);
410
+
411
+ return result;
412
+ };
413
+ }
414
+
415
+ // ES5 15.4.4.14
416
+ // http://es5.github.com/#x15.4.4.14
417
+ // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
418
+ if (!Array.prototype.indexOf) {
419
+ Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
420
+ var self = toObject(this),
421
+ length = self.length >>> 0;
422
+
423
+ if (!length) {
424
+ return -1;
425
+ }
426
+
427
+ var i = 0;
428
+ if (arguments.length > 1) {
429
+ i = toInteger(arguments[1]);
430
+ }
431
+
432
+ // handle negative indices
433
+ i = i >= 0 ? i : Math.max(0, length + i);
434
+ for (; i < length; i++) {
435
+ if (i in self && self[i] === sought) {
436
+ return i;
437
+ }
438
+ }
439
+ return -1;
440
+ };
441
+ }
442
+
443
+ // ES5 15.4.4.15
444
+ // http://es5.github.com/#x15.4.4.15
445
+ // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf
446
+ if (!Array.prototype.lastIndexOf) {
447
+ Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
448
+ var self = toObject(this),
449
+ length = self.length >>> 0;
450
+
451
+ if (!length) {
452
+ return -1;
453
+ }
454
+ var i = length - 1;
455
+ if (arguments.length > 1) {
456
+ i = Math.min(i, toInteger(arguments[1]));
457
+ }
458
+ // handle negative indices
459
+ i = i >= 0 ? i : length - Math.abs(i);
460
+ for (; i >= 0; i--) {
461
+ if (i in self && sought === self[i]) {
462
+ return i;
463
+ }
464
+ }
465
+ return -1;
466
+ };
467
+ }
468
+
469
+ //
470
+ // Object
471
+ // ======
472
+ //
473
+
474
+ // ES5 15.2.3.14
475
+ // http://es5.github.com/#x15.2.3.14
476
+ if (!Object.keys) {
477
+ // http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
478
+ var hasDontEnumBug = true,
479
+ dontEnums = [
480
+ "toString",
481
+ "toLocaleString",
482
+ "valueOf",
483
+ "hasOwnProperty",
484
+ "isPrototypeOf",
485
+ "propertyIsEnumerable",
486
+ "constructor"
487
+ ],
488
+ dontEnumsLength = dontEnums.length;
489
+
490
+ for (var key in {"toString": null}) {
491
+ hasDontEnumBug = false;
492
+ }
493
+
494
+ Object.keys = function keys(object) {
495
+
496
+ if ((typeof object != "object" && typeof object != "function") || object === null) {
497
+ throw new TypeError("Object.keys called on a non-object");
498
+ }
499
+
500
+ var keys = [];
501
+ for (var name in object) {
502
+ if (owns(object, name)) {
503
+ keys.push(name);
504
+ }
505
+ }
506
+
507
+ if (hasDontEnumBug) {
508
+ for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
509
+ var dontEnum = dontEnums[i];
510
+ if (owns(object, dontEnum)) {
511
+ keys.push(dontEnum);
512
+ }
513
+ }
514
+ }
515
+ return keys;
516
+ };
517
+
518
+ }
519
+
520
+ //
521
+ // Date
522
+ // ====
523
+ //
524
+
525
+ // ES5 15.9.5.43
526
+ // http://es5.github.com/#x15.9.5.43
527
+ // This function returns a String value represent the instance in time
528
+ // represented by this Date object. The format of the String is the Date Time
529
+ // string format defined in 15.9.1.15. All fields are present in the String.
530
+ // The time zone is always UTC, denoted by the suffix Z. If the time value of
531
+ // this object is not a finite Number a RangeError exception is thrown.
532
+ if (!Date.prototype.toISOString || (new Date(-62198755200000).toISOString().indexOf('-000001') === -1)) {
533
+ Date.prototype.toISOString = function toISOString() {
534
+ var result, length, value, year;
535
+ if (!isFinite(this)) {
536
+ throw new RangeError("Date.prototype.toISOString called on non-finite value.");
537
+ }
538
+
539
+ // the date time string format is specified in 15.9.1.15.
540
+ result = [this.getUTCMonth() + 1, this.getUTCDate(),
541
+ this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()];
542
+ year = this.getUTCFullYear();
543
+ year = (year < 0 ? '-' : (year > 9999 ? '+' : '')) + ('00000' + Math.abs(year)).slice(0 <= year && year <= 9999 ? -4 : -6);
544
+
545
+ length = result.length;
546
+ while (length--) {
547
+ value = result[length];
548
+ // pad months, days, hours, minutes, and seconds to have two digits.
549
+ if (value < 10) {
550
+ result[length] = "0" + value;
551
+ }
552
+ }
553
+ // pad milliseconds to have three digits.
554
+ return year + "-" + result.slice(0, 2).join("-") + "T" + result.slice(2).join(":") + "." +
555
+ ("000" + this.getUTCMilliseconds()).slice(-3) + "Z";
556
+ }
557
+ }
558
+
559
+ // ES5 15.9.4.4
560
+ // http://es5.github.com/#x15.9.4.4
561
+ if (!Date.now) {
562
+ Date.now = function now() {
563
+ return new Date().getTime();
564
+ };
565
+ }
566
+
567
+ // ES5 15.9.5.44
568
+ // http://es5.github.com/#x15.9.5.44
569
+ // This function provides a String representation of a Date object for use by
570
+ // JSON.stringify (15.12.3).
571
+ if (!Date.prototype.toJSON) {
572
+ Date.prototype.toJSON = function toJSON(key) {
573
+ // When the toJSON method is called with argument key, the following
574
+ // steps are taken:
575
+
576
+ // 1. Let O be the result of calling ToObject, giving it the this
577
+ // value as its argument.
578
+ // 2. Let tv be ToPrimitive(O, hint Number).
579
+ // 3. If tv is a Number and is not finite, return null.
580
+ // XXX
581
+ // 4. Let toISO be the result of calling the [[Get]] internal method of
582
+ // O with argument "toISOString".
583
+ // 5. If IsCallable(toISO) is false, throw a TypeError exception.
584
+ if (typeof this.toISOString != "function") {
585
+ throw new TypeError('toISOString property is not callable');
586
+ }
587
+ // 6. Return the result of calling the [[Call]] internal method of
588
+ // toISO with O as the this value and an empty argument list.
589
+ return this.toISOString();
590
+
591
+ // NOTE 1 The argument is ignored.
592
+
593
+ // NOTE 2 The toJSON function is intentionally generic; it does not
594
+ // require that its this value be a Date object. Therefore, it can be
595
+ // transferred to other kinds of objects for use as a method. However,
596
+ // it does require that any such object have a toISOString method. An
597
+ // object is free to use the argument key to filter its
598
+ // stringification.
599
+ };
600
+ }
601
+
602
+ // ES5 15.9.4.2
603
+ // http://es5.github.com/#x15.9.4.2
604
+ // based on work shared by Daniel Friesen (dantman)
605
+ // http://gist.github.com/303249
606
+ if (!Date.parse || Date.parse("+275760-09-13T00:00:00.000Z") !== 8.64e15) {
607
+ // XXX global assignment won't work in embeddings that use
608
+ // an alternate object for the context.
609
+ Date = (function(NativeDate) {
610
+
611
+ // Date.length === 7
612
+ var Date = function Date(Y, M, D, h, m, s, ms) {
613
+ var length = arguments.length;
614
+ if (this instanceof NativeDate) {
615
+ var date = length == 1 && String(Y) === Y ? // isString(Y)
616
+ // We explicitly pass it through parse:
617
+ new NativeDate(Date.parse(Y)) :
618
+ // We have to manually make calls depending on argument
619
+ // length here
620
+ length >= 7 ? new NativeDate(Y, M, D, h, m, s, ms) :
621
+ length >= 6 ? new NativeDate(Y, M, D, h, m, s) :
622
+ length >= 5 ? new NativeDate(Y, M, D, h, m) :
623
+ length >= 4 ? new NativeDate(Y, M, D, h) :
624
+ length >= 3 ? new NativeDate(Y, M, D) :
625
+ length >= 2 ? new NativeDate(Y, M) :
626
+ length >= 1 ? new NativeDate(Y) :
627
+ new NativeDate();
628
+ // Prevent mixups with unfixed Date object
629
+ date.constructor = Date;
630
+ return date;
631
+ }
632
+ return NativeDate.apply(this, arguments);
633
+ };
634
+
635
+ // 15.9.1.15 Date Time String Format.
636
+ var isoDateExpression = new RegExp("^" +
637
+ "(\\d{4}|[\+\-]\\d{6})" + // four-digit year capture or sign + 6-digit extended year
638
+ "(?:-(\\d{2})" + // optional month capture
639
+ "(?:-(\\d{2})" + // optional day capture
640
+ "(?:" + // capture hours:minutes:seconds.milliseconds
641
+ "T(\\d{2})" + // hours capture
642
+ ":(\\d{2})" + // minutes capture
643
+ "(?:" + // optional :seconds.milliseconds
644
+ ":(\\d{2})" + // seconds capture
645
+ "(?:\\.(\\d{3}))?" + // milliseconds capture
646
+ ")?" +
647
+ "(?:" + // capture UTC offset component
648
+ "Z|" + // UTC capture
649
+ "(?:" + // offset specifier +/-hours:minutes
650
+ "([-+])" + // sign capture
651
+ "(\\d{2})" + // hours offset capture
652
+ ":(\\d{2})" + // minutes offset capture
653
+ ")" +
654
+ ")?)?)?)?" +
655
+ "$");
656
+
657
+ // Copy any custom methods a 3rd party library may have added
658
+ for (var key in NativeDate) {
659
+ Date[key] = NativeDate[key];
660
+ }
661
+
662
+ // Copy "native" methods explicitly; they may be non-enumerable
663
+ Date.now = NativeDate.now;
664
+ Date.UTC = NativeDate.UTC;
665
+ Date.prototype = NativeDate.prototype;
666
+ Date.prototype.constructor = Date;
667
+
668
+ // Upgrade Date.parse to handle simplified ISO 8601 strings
669
+ Date.parse = function parse(string) {
670
+ var match = isoDateExpression.exec(string);
671
+ if (match) {
672
+ match.shift(); // kill match[0], the full match
673
+ // parse months, days, hours, minutes, seconds, and milliseconds
674
+ for (var i = 1; i < 7; i++) {
675
+ // provide default values if necessary
676
+ match[i] = +(match[i] || (i < 3 ? 1 : 0));
677
+ // match[1] is the month. Months are 0-11 in JavaScript
678
+ // `Date` objects, but 1-12 in ISO notation, so we
679
+ // decrement.
680
+ if (i == 1) {
681
+ match[i]--;
682
+ }
683
+ }
684
+
685
+ // parse the UTC offset component
686
+ var minuteOffset = +match.pop(), hourOffset = +match.pop(), sign = match.pop();
687
+
688
+ // compute the explicit time zone offset if specified
689
+ var offset = 0;
690
+ if (sign) {
691
+ // detect invalid offsets and return early
692
+ if (hourOffset > 23 || minuteOffset > 59) {
693
+ return NaN;
694
+ }
695
+
696
+ // express the provided time zone offset in minutes. The offset is
697
+ // negative for time zones west of UTC; positive otherwise.
698
+ offset = (hourOffset * 60 + minuteOffset) * 6e4 * (sign == "+" ? -1 : 1);
699
+ }
700
+
701
+ // Date.UTC for years between 0 and 99 converts year to 1900 + year
702
+ // The Gregorian calendar has a 400-year cycle, so
703
+ // to Date.UTC(year + 400, .... ) - 12622780800000 == Date.UTC(year, ...),
704
+ // where 12622780800000 - number of milliseconds in Gregorian calendar 400 years
705
+ var year = +match[0];
706
+ if (0 <= year && year <= 99) {
707
+ match[0] = year + 400;
708
+ return NativeDate.UTC.apply(this, match) + offset - 12622780800000;
709
+ }
710
+
711
+ // compute a new UTC date value, accounting for the optional offset
712
+ return NativeDate.UTC.apply(this, match) + offset;
713
+ }
714
+ return NativeDate.parse.apply(this, arguments);
715
+ };
716
+
717
+ return Date;
718
+ })(Date);
719
+ }
720
+
721
+ //
722
+ // String
723
+ // ======
724
+ //
725
+
726
+ // ES5 15.5.4.20
727
+ // http://es5.github.com/#x15.5.4.20
728
+ var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
729
+ "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
730
+ "\u2029\uFEFF";
731
+ if (!String.prototype.trim || ws.trim()) {
732
+ // http://blog.stevenlevithan.com/archives/faster-trim-javascript
733
+ // http://perfectionkills.com/whitespace-deviations/
734
+ ws = "[" + ws + "]";
735
+ var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
736
+ trimEndRegexp = new RegExp(ws + ws + "*$");
737
+ String.prototype.trim = function trim() {
738
+ if (this === undefined || this === null) {
739
+ throw new TypeError("can't convert "+this+" to object");
740
+ }
741
+ return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
742
+ };
743
+ }
744
+
745
+ //
746
+ // Util
747
+ // ======
748
+ //
749
+
750
+ // ES5 9.4
751
+ // http://es5.github.com/#x9.4
752
+ // http://jsperf.com/to-integer
753
+ var toInteger = function (n) {
754
+ n = +n;
755
+ if (n !== n) { // isNaN
756
+ n = 0;
757
+ } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
758
+ n = (n > 0 || -1) * Math.floor(Math.abs(n));
759
+ }
760
+ return n;
761
+ };
762
+
763
+ var prepareString = "a"[0] != "a";
764
+ // ES5 9.9
765
+ // http://es5.github.com/#x9.9
766
+ var toObject = function (o) {
767
+ if (o == null) { // this matches both null and undefined
768
+ throw new TypeError("can't convert "+o+" to object");
769
+ }
770
+ // If the implementation doesn't support by-index access of
771
+ // string characters (ex. IE < 9), split the string
772
+ if (prepareString && typeof o == "string" && o) {
773
+ return o.split("");
774
+ }
775
+ return Object(o);
776
+ };
777
+
778
+ });