summaryrefslogtreecommitdiff
path: root/node_modules/core-js/build/build.ls
blob: 274ffc42397a7bfeb74cb614a1877fb7b246063a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
require! {'./config': {banner}, fs: {readFile, writeFile, unlink}, path, webpack}

list = <[
  es5
  es6.symbol
  es6.object.assign
  es6.object.is
  es6.object.set-prototype-of
  es6.object.to-string
  es6.object.freeze
  es6.object.seal
  es6.object.prevent-extensions
  es6.object.is-frozen
  es6.object.is-sealed
  es6.object.is-extensible
  es6.object.get-own-property-descriptor
  es6.object.get-prototype-of
  es6.object.keys
  es6.object.get-own-property-names
  es6.function.name
  es6.function.has-instance
  es6.number.constructor
  es6.number.epsilon
  es6.number.is-finite
  es6.number.is-integer
  es6.number.is-nan
  es6.number.is-safe-integer
  es6.number.max-safe-integer
  es6.number.min-safe-integer
  es6.number.parse-float
  es6.number.parse-int
  es6.math.acosh
  es6.math.asinh
  es6.math.atanh
  es6.math.cbrt
  es6.math.clz32
  es6.math.cosh
  es6.math.expm1
  es6.math.fround
  es6.math.hypot
  es6.math.imul
  es6.math.log10
  es6.math.log1p
  es6.math.log2
  es6.math.sign
  es6.math.sinh
  es6.math.tanh
  es6.math.trunc
  es6.string.from-code-point
  es6.string.raw
  es6.string.trim
  es6.string.code-point-at
  es6.string.ends-with
  es6.string.includes
  es6.string.repeat
  es6.string.starts-with
  es6.string.iterator
  es6.array.from
  es6.array.of
  es6.array.iterator
  es6.array.species
  es6.array.copy-within
  es6.array.fill
  es6.array.find
  es6.array.find-index
  es6.regexp.constructor
  es6.regexp.flags
  es6.regexp.match
  es6.regexp.replace
  es6.regexp.search
  es6.regexp.split
  es6.promise
  es6.map
  es6.set
  es6.weak-map
  es6.weak-set
  es6.reflect.apply
  es6.reflect.construct
  es6.reflect.define-property
  es6.reflect.delete-property
  es6.reflect.enumerate
  es6.reflect.get
  es6.reflect.get-own-property-descriptor
  es6.reflect.get-prototype-of
  es6.reflect.has
  es6.reflect.is-extensible
  es6.reflect.own-keys
  es6.reflect.prevent-extensions
  es6.reflect.set
  es6.reflect.set-prototype-of
  es6.date.to-string
  es6.typed.array-buffer
  es6.typed.data-view
  es6.typed.int8-array
  es6.typed.uint8-array
  es6.typed.uint8-clamped-array
  es6.typed.int16-array
  es6.typed.uint16-array
  es6.typed.int32-array
  es6.typed.uint32-array
  es6.typed.float32-array
  es6.typed.float64-array
  es7.array.includes
  es7.string.at
  es7.string.pad-left
  es7.string.pad-right
  es7.string.trim-left
  es7.string.trim-right
  es7.regexp.escape
  es7.object.get-own-property-descriptors
  es7.object.values
  es7.object.entries
  es7.map.to-json
  es7.set.to-json
  web.immediate
  web.dom.iterable
  web.timers
  core.dict
  core.get-iterator-method
  core.get-iterator
  core.is-iterable
  core.delay
  core.function.part
  core.object.is-object
  core.object.classof
  core.object.define
  core.object.make
  core.number.iterator
  core.string.escape-html
  core.string.unescape-html
  core.log
  js.array.statics
]>

experimental = <[
  es6.date.to-string
  es6.typed.array-buffer
  es6.typed.data-view
  es6.typed.int8-array
  es6.typed.uint8-array
  es6.typed.uint8-clamped-array
  es6.typed.int16-array
  es6.typed.uint16-array
  es6.typed.int32-array
  es6.typed.uint32-array
  es6.typed.float32-array
  es6.typed.float64-array
]>

libraryBlacklist = <[
  es6.object.to-string
  es6.function.name
  es6.regexp.constructor
  es6.regexp.flags
  es6.regexp.match
  es6.regexp.replace
  es6.regexp.search
  es6.regexp.split
  es6.number.constructor
]>

es5SpecialCase = <[
  es6.object.freeze
  es6.object.seal
  es6.object.prevent-extensions
  es6.object.is-frozen
  es6.object.is-sealed
  es6.object.is-extensible
  es6.string.trim
]>

module.exports = ({modules = [], blacklist = [], library = no}, next)!->
  let @ = modules.reduce ((memo, it)-> memo[it] = on; memo), {}
    check = (err)->
      if err
        next err, ''
        on

    if @exp => for experimental => @[..] = on
    if @es5 => for es5SpecialCase => @[..] = on
    for ns of @
      if @[ns]
        for name in list
          if name.indexOf("#ns.") is 0 and name not in experimental
            @[name] = on

    if library => blacklist ++= libraryBlacklist
    for ns in blacklist
      for name in list
        if name is ns or name.indexOf("#ns.") is 0
          @[name] = no

    TARGET = "./__tmp#{ Math.random! }__.js"
    err, info <~! webpack do
      entry: list.filter(~> @[it]).map ~>
        path.join(__dirname, '../', "#{ if library => '/library' else '' }/modules/#it")
      output:
        path: ''
        filename: TARGET
    if check err => return
    err, script <~! readFile TARGET
    if check err => return
    err <~! unlink TARGET
    if check err => return

    next null """
      #banner
      !function(__e, __g, undefined){
      'use strict';
      #script
      // CommonJS export
      if(typeof module != 'undefined' && module.exports)module.exports = __e;
      // RequireJS export
      else if(typeof define == 'function' && define.amd)define(function(){return __e});
      // Export to global object
      else __g.core = __e;
      }(1, 1);
      """