/*===
MAX_VALUE -> number 1.7976931348623157e+308
writable=false, enumerable=false, configurable=false
MIN_VALUE -> number 5e-324
writable=false, enumerable=false, configurable=false
NaN -> number NaN
writable=false, enumerable=false, configurable=false
POSITIVE_INFINITY -> number Infinity
writable=false, enumerable=false, configurable=false
NEGATIVE_INFINITY -> number -Infinity
writable=false, enumerable=false, configurable=false
===*/

function valueTest() {
   var names = [ 'MAX_VALUE', 'MIN_VALUE', 'NaN', 'POSITIVE_INFINITY', 'NEGATIVE_INFINITY' ];
   var i;
   var pd, v;

   for (i = 0; i < names.length; i++) {
       pd = Object.getOwnPropertyDescriptor(Number, names[i]);
       if (!pd) { print('does not exist'); continue; }
       v = pd.value;
       print(names[i], '->', typeof v, v);
       print('writable=' + pd.writable +
             ', enumerable=' + pd.enumerable +
             ', configurable=' + pd.configurable);
   }
}

try {
    valueTest();
} catch (e) {
    print(e);
}

