1+ function isObject ( obj ) {
2+ if ( obj === undefined || obj === null ) {
3+ return false ;
4+ } else {
5+ return toString . call ( obj ) == '[object Object]' ;
6+ }
7+ }
8+
9+ var getRandomBasic = ( function ( ) {
10+ var today = new Date ( ) ;
11+ var seed = today . getTime ( ) ;
12+
13+ function rnd ( ) {
14+ seed = ( seed * 9301 + 49297 ) % 233280 ;
15+ return seed / 233280.0 ;
16+ }
17+ return function rand ( number ) {
18+ return Math . ceil ( rnd ( ) * number ) ;
19+ } ;
20+ } ) ( ) ;
21+
22+ function getRandom ( ) {
23+ if ( typeof Uint32Array === 'function' ) {
24+ var cry = '' ;
25+ if ( typeof crypto !== 'undefined' ) {
26+ cry = crypto ;
27+ } else if ( typeof msCrypto !== 'undefined' ) {
28+ cry = msCrypto ;
29+ }
30+ if ( isObject ( cry ) && cry . getRandomValues ) {
31+ var typedArray = new Uint32Array ( 1 ) ;
32+ var randomNumber = cry . getRandomValues ( typedArray ) [ 0 ] ;
33+ var integerLimit = Math . pow ( 2 , 32 ) ;
34+ return randomNumber / integerLimit ;
35+ }
36+ }
37+ return getRandomBasic ( 10000000000000000000 ) / 10000000000000000000 ;
38+ }
39+
140var _ = { } ;
241
342var sa = { } ;
@@ -156,9 +195,9 @@ sa.status = {};
156195var ArrayProto = Array . prototype ,
157196 ObjProto = Object . prototype ,
158197 slice = ArrayProto . slice ,
159- toString = ObjProto . toString ,
198+ toString$1 = ObjProto . toString ,
160199 hasOwnProperty = ObjProto . hasOwnProperty ,
161- LIB_VERSION = '1.14.23 ' ,
200+ LIB_VERSION = '1.14.24 ' ,
162201 LIB_NAME = 'MiniProgram' ;
163202
164203var source_channel_standard = 'utm_source utm_medium utm_campaign utm_content utm_term' ;
@@ -249,7 +288,7 @@ var page_route_map = [];
249288 _ . isArray =
250289 nativeIsArray ||
251290 function ( obj ) {
252- return toString . call ( obj ) === '[object Array]' ;
291+ return toString$1 . call ( obj ) === '[object Array]' ;
253292 } ;
254293
255294 _ . isFunction = function ( f ) {
@@ -316,7 +355,7 @@ _.isObject = function(obj) {
316355 if ( obj === undefined || obj === null ) {
317356 return false ;
318357 } else {
319- return toString . call ( obj ) == '[object Object]' ;
358+ return toString$1 . call ( obj ) == '[object Object]' ;
320359 }
321360} ;
322361
@@ -337,19 +376,19 @@ _.isUndefined = function(obj) {
337376} ;
338377
339378_ . isString = function ( obj ) {
340- return toString . call ( obj ) == '[object String]' ;
379+ return toString$1 . call ( obj ) == '[object String]' ;
341380} ;
342381
343382_ . isDate = function ( obj ) {
344- return toString . call ( obj ) == '[object Date]' ;
383+ return toString$1 . call ( obj ) == '[object Date]' ;
345384} ;
346385
347386_ . isBoolean = function ( obj ) {
348- return toString . call ( obj ) == '[object Boolean]' ;
387+ return toString$1 . call ( obj ) == '[object Boolean]' ;
349388} ;
350389
351390_ . isNumber = function ( obj ) {
352- return toString . call ( obj ) == '[object Number]' && / [ \d \. ] + / . test ( String ( obj ) ) ;
391+ return toString$1 . call ( obj ) == '[object Number]' && / [ \d \. ] + / . test ( String ( obj ) ) ;
353392} ;
354393
355394_ . isJSONString = function ( str ) {
@@ -1085,11 +1124,12 @@ _.setSfSource = function(para, prop) {
10851124
10861125_ . setPageSfSource = function ( prop ) {
10871126 try {
1088- var allpages = getCurrentPages ( ) ;
1089- var myvar = JSON . parse ( JSON . stringify ( allpages [ allpages . length - 1 ] . options ) ) ;
1127+ var allpages = _ . getCurrentPage ( ) ;
1128+ var options = allpages ? allpages . options : '' ;
1129+ var myvar = JSON . parse ( JSON . stringify ( options ) ) ;
10901130 for ( var i in myvar ) {
10911131 myvar [ i ] = _ . decodeURIComponent ( myvar [ i ] ) ;
1092- }
1132+ } ;
10931133
10941134 if ( ! _ . isEmptyObject ( myvar ) && myvar . _sfs ) {
10951135 prop . $sf_source = myvar . _sfs ;
@@ -1104,8 +1144,7 @@ try {
11041144 Object . defineProperty ( wx , 'setNavigationBarTitle' , {
11051145 get : function ( ) {
11061146 return function ( titleObj ) {
1107- var pages = getCurrentPages ( ) ;
1108- var currentPagePath = pages [ pages . length - 1 ] . route || '' ;
1147+ var currentPagePath = _ . getCurrentPath ( ) ;
11091148 titleObj = _ . isObject ( titleObj ) ? titleObj : { } ;
11101149 globalTitle [ currentPagePath ] = titleObj . title ;
11111150 oldSetNavigationBarTitle . call ( this , titleObj ) ;
@@ -1442,7 +1481,7 @@ sa.prepareData = function(p, callback) {
14421481 }
14431482
14441483 if ( ! p . type || p . type . slice ( 0 , 7 ) !== 'profile' ) {
1445- data . _track_id = Number ( String ( Math . random ( ) ) . slice ( 2 , 5 ) + String ( Math . random ( ) ) . slice ( 2 , 4 ) + String ( Date . now ( ) ) . slice ( - 4 ) ) ;
1484+ data . _track_id = Number ( String ( getRandom ( ) ) . slice ( 2 , 5 ) + String ( getRandom ( ) ) . slice ( 2 , 4 ) + String ( Date . now ( ) ) . slice ( - 4 ) ) ;
14461485 data . properties = _ . extend ( { } , _ . info . properties , sa . store . getProps ( ) , _ . info . currentProps , data . properties ) ;
14471486 if ( p . type === 'track' ) {
14481487 data . properties . $is_first_day = _ . getIsFirstDay ( ) ;
@@ -1482,11 +1521,11 @@ sa.store = {
14821521 '' +
14831522 Date . now ( ) +
14841523 '-' +
1485- Math . floor ( 1e7 * Math . random ( ) ) +
1524+ Math . floor ( 1e7 * getRandom ( ) ) +
14861525 '-' +
1487- Math . random ( ) . toString ( 16 ) . replace ( '.' , '' ) +
1526+ getRandom ( ) . toString ( 16 ) . replace ( '.' , '' ) +
14881527 '-' +
1489- String ( Math . random ( ) * 31242 )
1528+ String ( getRandom ( ) * 31242 )
14901529 . replace ( '.' , '' )
14911530 . slice ( 0 , 8 )
14921531 ) ;
@@ -2261,9 +2300,8 @@ _.setQuery = function(params, isEncode) {
22612300_ . getUtmFromPage = function ( ) {
22622301 var newObj = { } ;
22632302 try {
2264- var allpages = getCurrentPages ( ) ;
2265- var myvar = JSON . parse ( JSON . stringify ( allpages [ allpages . length - 1 ] . options ) ) ;
2266-
2303+ var allpages = _ . getCurrentPage ( ) ;
2304+ var myvar = JSON . parse ( JSON . stringify ( allpages . options ) ) ;
22672305 for ( var i in myvar ) {
22682306 myvar [ i ] = _ . decodeURIComponent ( myvar [ i ] ) ;
22692307 }
@@ -2277,13 +2315,13 @@ _.getUtmFromPage = function() {
22772315
22782316_ . sendPageLeave = function ( ) {
22792317 var currentPage = { } ;
2318+ var router = '' ;
22802319 try {
2281- var pages = getCurrentPages ( ) ;
2282- currentPage = pages [ pages . length - 1 ] ;
2320+ currentPage = _ . getCurrentPage ( ) ;
2321+ router = currentPage ? currentPage . route : '' ;
22832322 } catch ( error ) {
22842323 logger . info ( error ) ;
22852324 }
2286- var router = currentPage . route ;
22872325 if ( page_show_time >= 0 && router !== '' ) {
22882326 var prop = { } ;
22892327 var title = _ . getPageTitle ( router ) ;
@@ -2683,13 +2721,7 @@ sa.pageShow = function(prop) {
26832721 var obj = { } ;
26842722 var router = _ . getCurrentPath ( ) ;
26852723 var title = _ . getPageTitle ( router ) ;
2686- var currentPage = { } ;
2687- try {
2688- var pages = getCurrentPages ( ) ;
2689- currentPage = pages [ pages . length - 1 ] ;
2690- } catch ( error ) {
2691- logger . info ( error ) ;
2692- }
2724+ var currentPage = _ . getCurrentPage ( ) ;
26932725 if ( sa . para . preset_properties . url_path === true ) {
26942726 sa . registerApp ( {
26952727 $url_path : router
0 commit comments