nl_tokens: Brake sandbox : Using UglifyJS AST and sandbox variable in lmd . js file replace all sb . smth with actual value of sandbox [ smth ] than delete sandbox variable from lmd . js and all modules
pl_tokens: function brakeSandboxes ( ast ) { var map = getSandboxMap ( ast ) , isSandboxVariableWiped = <mask> ; return walker . with_walkers ( { // lookup for modules // looking for this pattern // [ 'call', //  [ 'function', null, [ 'sb' ], [ [Object] ] ], //  [ [ 'name', 'sandbox' ] ] ] "call" : function ( content ) { if ( this [ 2 ] && this [ 2 ] . length > 0 && this [ 2 ] [ 0 ] [ 0 ] === "name" && this [ 2 ] [ 0 ] [ 1 ] === "sandbox" && this [ 1 ] && this [ 1 ] [ 0 ] === "function" ) { // 1. remove sandbox argument this [ 2 ] = [ ] ; // 2. break sandbox in each module return breakSandbox ( this , map ) ; } } , // wipe sandobx variable "var" : function ( ) { if ( isSandboxVariableWiped ) { return ; } for ( var i = 0 , c = this [ 1 ] . length , varItem ; i < c ; i ++ ) { varItem = this [ 1 ] [ i ] ; if ( varItem [ 0 ] === 'sandbox' ) { isSandboxVariableWiped = true ; this [ 1 ] . splice ( i , 1 ) ; return this ; } } } } , function ( ) { return walker . walk ( ast ) ; } ) ; }