@@ -145,6 +145,15 @@ function flatten (list) {
145145 , [ ] )
146146}
147147
148+ function future ( ) {
149+ let res , rej
150+ const promise = new Promise ( ( resolve , reject ) => {
151+ res = resolve
152+ rej = reject
153+ } )
154+ return { promise, resolve : res , reject : rej }
155+ }
156+
148157function getArguments ( fn ) {
149158 const source = fn . toString ( ) . replace ( NYC_DEFAULT_REGEX , '' )
150159 const match = ARGUMENT_REGEX . exec ( source )
@@ -300,12 +309,12 @@ function memoize (fn) {
300309 if ( set . has ( args ) ) {
301310 return set [ args ]
302311 } else {
303- var result = fn . apply ( null , args )
312+ const result = fn . apply ( null , args )
304313 set . add ( args , result )
305314 return result
306315 }
307316 }
308- memod . name = ` memoized#{fn.name}`
317+ memod . name = ' memoized#{fn.name}'
309318 return memod
310319}
311320
@@ -335,10 +344,10 @@ function mergeTwo (source, target) {
335344 }
336345
337346 target = target || new source . constructor ( )
338- for ( var key in source ) {
339- target [ key ] = typeof target [ key ] === 'undefined'
340- ? mergeTwo ( source [ key ] , null )
341- : mergeTwo ( source [ key ] , target [ key ] )
347+ for ( const key in source ) {
348+ target [ key ] = typeof target [ key ] === 'undefined'
349+ ? mergeTwo ( source [ key ] , null )
350+ : mergeTwo ( source [ key ] , target [ key ] )
342351 }
343352 return target
344353}
@@ -485,6 +494,7 @@ module.exports = {
485494 find : find ,
486495 filter : filter ,
487496 flatten : flatten ,
497+ future : future ,
488498 getArguments : getArguments ,
489499 getObjectTag : getObjectTag ,
490500 has : has ,
0 commit comments