aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/build/build.ls
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-04-20 03:09:25 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-04-24 16:14:29 +0200
commit82f2b76e25a4a67e01ec67e5ebe39d14ad771ea8 (patch)
tree965f6eb89b84d65a62b49008fd972c004832ccd1 /node_modules/core-js/build/build.ls
parente6e0cbc387c2a77b48e4065c229daa65bf1aa0fa (diff)
Reorganize module loading.
We now use webpack instead of SystemJS, effectively bundling modules into one file (plus commons chunks) for every entry point. This results in a much smaller extension size (almost half). Furthermore we use yarn/npm even for extension run-time dependencies. This relieves us from manually vendoring and building dependencies. It's also easier to understand for new developers familiar with node.
Diffstat (limited to 'node_modules/core-js/build/build.ls')
-rw-r--r--node_modules/core-js/build/build.ls226
1 files changed, 191 insertions, 35 deletions
diff --git a/node_modules/core-js/build/build.ls b/node_modules/core-js/build/build.ls
index 0cf210de5..274ffc423 100644
--- a/node_modules/core-js/build/build.ls
+++ b/node_modules/core-js/build/build.ls
@@ -1,14 +1,181 @@
-require! {
- '../library/fn/promise': Promise
- './config': {list, experimental, libraryBlacklist, es5SpecialCase, banner}
- fs: {readFile, writeFile, unlink}
- path: {join}
- webpack, temp
-}
-
-module.exports = ({modules = [], blacklist = [], library = no, umd = on})->
- resolve, reject <~! new Promise _
+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 @
@@ -23,40 +190,29 @@ module.exports = ({modules = [], blacklist = [], library = no, umd = on})->
if name is ns or name.indexOf("#ns.") is 0
@[name] = no
- TARGET = temp.path {suffix: '.js'}
-
+ TARGET = "./__tmp#{ Math.random! }__.js"
err, info <~! webpack do
entry: list.filter(~> @[it]).map ~>
- if library => join __dirname, '..', 'library', 'modules', it
- else join __dirname, '..', 'modules', it
+ path.join(__dirname, '../', "#{ if library => '/library' else '' }/modules/#it")
output:
path: ''
filename: TARGET
- if err => return reject err
-
+ if check err => return
err, script <~! readFile TARGET
- if err => return reject err
-
+ if check err => return
err <~! unlink TARGET
- if err => return reject err
-
- if umd
- exportScript = """
- // 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;
- """
- else
- exportScript = ""
-
- resolve """
+ if check err => return
+
+ next null """
#banner
!function(__e, __g, undefined){
'use strict';
#script
- #exportScript
+ // 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);
- """ \ No newline at end of file
+ """