diff --git a/bignumber.js b/bignumber.js index 18e1c27..0075179 100644 --- a/bignumber.js +++ b/bignumber.js @@ -1,10 +1,10 @@ -/*! bignumber.js v2.1.2 https://github.com/MikeMcl/bignumber.js/LICENCE */ +/*! bignumber.js v2.1.3 https://github.com/MikeMcl/bignumber.js/LICENCE */ -;(function (global) { +;(function (globalObj) { 'use strict'; /* - bignumber.js v2.1.2 + bignumber.js v2.1.3 A JavaScript library for arbitrary-precision arithmetic. https://github.com/MikeMcl/bignumber.js Copyright (c) 2015 Michael Mclaughlin @@ -12,8 +12,7 @@ */ - var BigNumber, parseNumeric, - crypto = global.crypto, + var cryptoObj, parseNumeric, isNumeric = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, mathceil = Math.ceil, mathfloor = Math.floor, @@ -35,11 +34,13 @@ */ MAX = 1E9; // 0 to MAX_INT32 + if ( typeof crypto != 'undefined' ) cryptoObj = crypto; + /* * Create and return a BigNumber constructor. */ - function another(configObj) { + function constructorFactory(configObj) { var div, // id tracks the caller function, so its name can be included in error messages. @@ -314,7 +315,7 @@ // CONSTRUCTOR PROPERTIES - BigNumber.another = another; + BigNumber.another = constructorFactory; BigNumber.ROUND_UP = 0; BigNumber.ROUND_DOWN = 1; @@ -442,8 +443,8 @@ if ( has( p = 'CRYPTO' ) ) { if ( v === !!v || v === 1 || v === 0 ) { - CRYPTO = !!( v && crypto && typeof crypto == 'object' ); - if ( v && !CRYPTO && ERRORS ) raise( 2, 'crypto unavailable', crypto ); + CRYPTO = !!( v && cryptoObj ); + if ( v && !CRYPTO && ERRORS ) raise( 2, 'crypto unavailable', cryptoObj ); } else if (ERRORS) { raise( 2, p + notBool, v ); } @@ -533,9 +534,9 @@ if (CRYPTO) { // Browsers supporting crypto.getRandomValues. - if ( crypto && crypto.getRandomValues ) { + if ( cryptoObj && cryptoObj.getRandomValues ) { - a = crypto.getRandomValues( new Uint32Array( k *= 2 ) ); + a = cryptoObj.getRandomValues( new Uint32Array( k *= 2 ) ); for ( ; i < k; ) { @@ -552,7 +553,7 @@ // Probability that v >= 9e15, is // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251 if ( v >= 9e15 ) { - b = crypto.getRandomValues( new Uint32Array(2) ); + b = cryptoObj.getRandomValues( new Uint32Array(2) ); a[i] = b[0]; a[i + 1] = b[1]; } else { @@ -566,10 +567,10 @@ i = k / 2; // Node.js supporting crypto.randomBytes. - } else if ( crypto && crypto.randomBytes ) { + } else if ( cryptoObj && cryptoObj.randomBytes ) { // buffer - a = crypto.randomBytes( k *= 7 ); + a = cryptoObj.randomBytes( k *= 7 ); for ( ; i < k; ) { @@ -582,7 +583,7 @@ ( a[i + 4] << 16 ) + ( a[i + 5] << 8 ) + a[i + 6]; if ( v >= 9e15 ) { - crypto.randomBytes(7).copy( a, i ); + cryptoObj.randomBytes(7).copy( a, i ); } else { // 0 <= (v % 1e14) <= 99999999999999 @@ -592,7 +593,7 @@ } i = k / 7; } else if (ERRORS) { - raise( 14, 'crypto unavailable', crypto ); + raise( 14, 'crypto unavailable', cryptoObj ); } } @@ -2676,19 +2677,19 @@ // EXPORT - BigNumber = another(); - // AMD. if ( typeof define == 'function' && define.amd ) { - define( function () { return BigNumber; } ); + define( function () { return constructorFactory(); } ); // Node and other environments that support module.exports. } else if ( typeof module != 'undefined' && module.exports ) { - module.exports = BigNumber; - if ( !crypto ) try { crypto = require('cry' + 'pto'); } catch (e) {} + module.exports = constructorFactory(); + if ( !cryptoObj ) try { cryptoOj = require('cry' + 'pto'); } catch (e) {} // Browser. + } else if (globalObj) { + globalObj.BigNumber = constructorFactory(); } else { - global.BigNumber = BigNumber; + BigNumber = constructorFactory(); } })(this);