Revision f230a1cf deps/v8/src/v8natives.js

View differences:

deps/v8/src/v8natives.js
32 32
// var $Number = global.Number;
33 33
// var $Function = global.Function;
34 34
// var $Array = global.Array;
35
// var $NaN = 0/0;
36 35
//
37 36
// in math.js:
38 37
// var $floor = MathFloor
......
95 94
  }
96 95
  if (fields) {
97 96
    for (var i = 0; i < fields.length; i++) {
98
      %SetProperty(prototype, fields[i], void 0, DONT_ENUM | DONT_DELETE);
97
      %SetProperty(prototype, fields[i], UNDEFINED, DONT_ENUM | DONT_DELETE);
99 98
    }
100 99
  }
101 100
  for (var i = 0; i < methods.length; i += 2) {
......
148 147
    string = TO_STRING_INLINE(string);
149 148
    radix = TO_INT32(radix);
150 149
    if (!(radix == 0 || (2 <= radix && radix <= 36))) {
151
      return $NaN;
150
      return NAN;
152 151
    }
153 152
  }
154 153

  
......
197 196
function SetUpGlobal() {
198 197
  %CheckIsBootstrapping();
199 198

  
199
  var attributes = DONT_ENUM | DONT_DELETE | READ_ONLY;
200

  
200 201
  // ECMA 262 - 15.1.1.1.
201
  %SetProperty(global, "NaN", $NaN, DONT_ENUM | DONT_DELETE | READ_ONLY);
202
  %SetProperty(global, "NaN", NAN, attributes);
202 203

  
203 204
  // ECMA-262 - 15.1.1.2.
204
  %SetProperty(global, "Infinity", 1/0, DONT_ENUM | DONT_DELETE | READ_ONLY);
205
  %SetProperty(global, "Infinity", INFINITY, attributes);
205 206

  
206 207
  // ECMA-262 - 15.1.1.3.
207
  %SetProperty(global, "undefined", void 0,
208
               DONT_ENUM | DONT_DELETE | READ_ONLY);
208
  %SetProperty(global, "undefined", UNDEFINED, attributes);
209 209

  
210 210
  // Set up non-enumerable function on the global object.
211 211
  InstallFunctions(global, DONT_ENUM, $Array(
......
475 475
function ToCompletePropertyDescriptor(obj) {
476 476
  var desc = ToPropertyDescriptor(obj);
477 477
  if (IsGenericDescriptor(desc) || IsDataDescriptor(desc)) {
478
    if (!desc.hasValue()) desc.setValue(void 0);
478
    if (!desc.hasValue()) desc.setValue(UNDEFINED);
479 479
    if (!desc.hasWritable()) desc.setWritable(false);
480 480
  } else {
481 481
    // Is accessor descriptor.
482
    if (!desc.hasGetter()) desc.setGet(void 0);
483
    if (!desc.hasSetter()) desc.setSet(void 0);
482
    if (!desc.hasGetter()) desc.setGet(UNDEFINED);
483
    if (!desc.hasSetter()) desc.setSet(UNDEFINED);
484 484
  }
485 485
  if (!desc.hasEnumerable()) desc.setEnumerable(false);
486 486
  if (!desc.hasConfigurable()) desc.setConfigurable(false);
......
491 491
function PropertyDescriptor() {
492 492
  // Initialize here so they are all in-object and have the same map.
493 493
  // Default values from ES5 8.6.1.
494
  this.value_ = void 0;
494
  this.value_ = UNDEFINED;
495 495
  this.hasValue_ = false;
496 496
  this.writable_ = false;
497 497
  this.hasWritable_ = false;
......
499 499
  this.hasEnumerable_ = false;
500 500
  this.configurable_ = false;
501 501
  this.hasConfigurable_ = false;
502
  this.get_ = void 0;
502
  this.get_ = UNDEFINED;
503 503
  this.hasGetter_ = false;
504
  this.set_ = void 0;
504
  this.set_ = UNDEFINED;
505 505
  this.hasSetter_ = false;
506 506
}
507 507

  
......
593 593
  }
594 594

  
595 595
  if (IS_UNDEFINED(desc_array)) {
596
    return void 0;
596
    return UNDEFINED;
597 597
  }
598 598

  
599 599
  var desc = new PropertyDescriptor();
......
647 647
  var p = ToName(v);
648 648
  if (%IsJSProxy(obj)) {
649 649
    // TODO(rossberg): adjust once there is a story for symbols vs proxies.
650
    if (IS_SYMBOL(v)) return void 0;
650
    if (IS_SYMBOL(v)) return UNDEFINED;
651 651

  
652 652
    var handler = %GetHandler(obj);
653
    var descriptor = CallTrap1(handler, "getOwnPropertyDescriptor", void 0, p);
653
    var descriptor = CallTrap1(
654
                         handler, "getOwnPropertyDescriptor", UNDEFINED, p);
654 655
    if (IS_UNDEFINED(descriptor)) return descriptor;
655 656
    var desc = ToCompletePropertyDescriptor(descriptor);
656 657
    if (!desc.isConfigurable()) {
......
666 667
  var props = %GetOwnProperty(ToObject(obj), p);
667 668

  
668 669
  // A false value here means that access checks failed.
669
  if (props === false) return void 0;
670
  if (props === false) return UNDEFINED;
670 671

  
671 672
  return ConvertDescriptorArrayToDescriptor(props);
672 673
}
......
693 694
  if (IS_SYMBOL(p)) return false;
694 695

  
695 696
  var handler = %GetHandler(obj);
696
  var result = CallTrap2(handler, "defineProperty", void 0, p, attributes);
697
  var result = CallTrap2(handler, "defineProperty", UNDEFINED, p, attributes);
697 698
  if (!ToBoolean(result)) {
698 699
    if (should_throw) {
699 700
      throw MakeTypeError("handler_returned_false",
......
710 711
function DefineObjectProperty(obj, p, desc, should_throw) {
711 712
  var current_or_access = %GetOwnProperty(ToObject(obj), ToName(p));
712 713
  // A false value here means that access checks failed.
713
  if (current_or_access === false) return void 0;
714
  if (current_or_access === false) return UNDEFINED;
714 715

  
715 716
  var current = ConvertDescriptorArrayToDescriptor(current_or_access);
716 717
  var extensible = %IsExtensible(ToObject(obj));
......
841 842
      flag |= READ_ONLY;
842 843
    }
843 844

  
844
    var value = void 0;  // Default value is undefined.
845
    var value = UNDEFINED;  // Default value is undefined.
845 846
    if (desc.hasValue()) {
846 847
      value = desc.getValue();
847 848
    } else if (!IS_UNDEFINED(current) && IsDataDescriptor(current)) {
......
920 921
    // For the time being, we need a hack to prevent Object.observe from
921 922
    // generating two change records.
922 923
    obj.length = new_length;
923
    desc.value_ = void 0;
924
    desc.value_ = UNDEFINED;
924 925
    desc.hasValue_ = false;
925 926
    threw = !DefineObjectProperty(obj, "length", desc, should_throw) || threw;
926 927
    if (emit_splice) {
......
1045 1046
  // Special handling for proxies.
1046 1047
  if (%IsJSProxy(obj)) {
1047 1048
    var handler = %GetHandler(obj);
1048
    var names = CallTrap0(handler, "getOwnPropertyNames", void 0);
1049
    var names = CallTrap0(handler, "getOwnPropertyNames", UNDEFINED);
1049 1050
    return ToNameArray(names, "getOwnPropertyNames", false);
1050 1051
  }
1051 1052

  
......
1194 1195
// Harmony proxies.
1195 1196
function ProxyFix(obj) {
1196 1197
  var handler = %GetHandler(obj);
1197
  var props = CallTrap0(handler, "fix", void 0);
1198
  var props = CallTrap0(handler, "fix", UNDEFINED);
1198 1199
  if (IS_UNDEFINED(props)) {
1199 1200
    throw MakeTypeError("handler_returned_undefined", [handler, "fix"]);
1200 1201
  }
......
1560 1561
  }
1561 1562

  
1562 1563
  if (NUMBER_IS_NAN(x)) return "NaN";
1563
  if (x == 1/0) return "Infinity";
1564
  if (x == -1/0) return "-Infinity";
1564
  if (x == INFINITY) return "Infinity";
1565
  if (x == -INFINITY) return "-Infinity";
1565 1566

  
1566 1567
  return %NumberToFixed(x, f);
1567 1568
}
......
1578 1579
    // Get the value of this number in case it's an object.
1579 1580
    x = %_ValueOf(this);
1580 1581
  }
1581
  var f = IS_UNDEFINED(fractionDigits) ? void 0 : TO_INTEGER(fractionDigits);
1582
  var f = IS_UNDEFINED(fractionDigits) ? UNDEFINED : TO_INTEGER(fractionDigits);
1582 1583

  
1583 1584
  if (NUMBER_IS_NAN(x)) return "NaN";
1584
  if (x == 1/0) return "Infinity";
1585
  if (x == -1/0) return "-Infinity";
1585
  if (x == INFINITY) return "Infinity";
1586
  if (x == -INFINITY) return "-Infinity";
1586 1587

  
1587 1588
  if (IS_UNDEFINED(f)) {
1588 1589
    f = -1;  // Signal for runtime function that f is not defined.
......
1608 1609
  var p = TO_INTEGER(precision);
1609 1610

  
1610 1611
  if (NUMBER_IS_NAN(x)) return "NaN";
1611
  if (x == 1/0) return "Infinity";
1612
  if (x == -1/0) return "-Infinity";
1612
  if (x == INFINITY) return "Infinity";
1613
  if (x == -INFINITY) return "-Infinity";
1613 1614

  
1614 1615
  if (p < 1 || p > 21) {
1615 1616
    throw new $RangeError("toPrecision() argument must be between 1 and 21");
......
1654 1655
               DONT_ENUM | DONT_DELETE | READ_ONLY);
1655 1656

  
1656 1657
  // ECMA-262 section 15.7.3.3.
1657
  %SetProperty($Number, "NaN", $NaN, DONT_ENUM | DONT_DELETE | READ_ONLY);
1658
  %SetProperty($Number, "NaN", NAN, DONT_ENUM | DONT_DELETE | READ_ONLY);
1658 1659

  
1659 1660
  // ECMA-262 section 15.7.3.4.
1660 1661
  %SetProperty($Number,
1661 1662
               "NEGATIVE_INFINITY",
1662
               -1/0,
1663
               -INFINITY,
1663 1664
               DONT_ENUM | DONT_DELETE | READ_ONLY);
1664 1665

  
1665 1666
  // ECMA-262 section 15.7.3.5.
1666 1667
  %SetProperty($Number,
1667 1668
               "POSITIVE_INFINITY",
1668
               1/0,
1669
               INFINITY,
1669 1670
               DONT_ENUM | DONT_DELETE | READ_ONLY);
1670 1671
  %ToFastProperties($Number);
1671 1672

  

Also available in: Unified diff