nl_tokens: the handler to generate an deep traversal handler
pl_tokens: function genTraversalHandler ( fn ) { var setter = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : function ( target , key , value ) { target [ <mask> ] = value ; } ; // use recursive to move what in source to the target // if you do not provide a target, we will create a new target function recursiveFn ( source , target , key ) { if ( isArray ( source ) || isObject ( source ) ) { target = isPrimitive ( target ) ? isObject ( source ) ? { } : [ ] : target ; for ( var _key in source ) { // $FlowFixMe: support computed key here setter ( target , _key , recursiveFn ( source [ _key ] , target [ _key ] , _key ) ) ; // target[key] = recursiveFn(source[key], target[key], key); } return target ; } return fn ( source , target , key ) ; } return recursiveFn ; }