OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 // This value is never used, but is needed to prevent GCC 4.5 from failing | 489 // This value is never used, but is needed to prevent GCC 4.5 from failing |
490 // to compile when we assert that a flag is either kNonStrictMode or | 490 // to compile when we assert that a flag is either kNonStrictMode or |
491 // kStrictMode. | 491 // kStrictMode. |
492 kInvalidStrictFlag | 492 kInvalidStrictFlag |
493 }; | 493 }; |
494 | 494 |
495 | 495 |
496 // Used to specify if a macro instruction must perform a smi check on tagged | 496 // Used to specify if a macro instruction must perform a smi check on tagged |
497 // values. | 497 // values. |
498 enum SmiCheckType { | 498 enum SmiCheckType { |
499 DONT_DO_SMI_CHECK = 0, | 499 DONT_DO_SMI_CHECK, |
500 DO_SMI_CHECK | 500 DO_SMI_CHECK |
501 }; | 501 }; |
502 | 502 |
503 | 503 |
504 // Used to specify whether a receiver is implicitly or explicitly | 504 // Used to specify whether a receiver is implicitly or explicitly |
505 // provided to a call. | 505 // provided to a call. |
506 enum CallKind { | 506 enum CallKind { |
507 CALL_AS_METHOD = 0, | 507 CALL_AS_METHOD, |
508 CALL_AS_FUNCTION | 508 CALL_AS_FUNCTION |
509 }; | 509 }; |
510 | 510 |
511 | 511 |
512 static const uint32_t kHoleNanUpper32 = 0x7FFFFFFF; | 512 static const uint32_t kHoleNanUpper32 = 0x7FFFFFFF; |
513 static const uint32_t kHoleNanLower32 = 0xFFFFFFFF; | 513 static const uint32_t kHoleNanLower32 = 0xFFFFFFFF; |
514 static const uint32_t kNaNOrInfinityLowerBoundUpper32 = 0x7FF00000; | 514 static const uint32_t kNaNOrInfinityLowerBoundUpper32 = 0x7FF00000; |
515 | 515 |
516 const uint64_t kHoleNanInt64 = | 516 const uint64_t kHoleNanInt64 = |
517 (static_cast<uint64_t>(kHoleNanUpper32) << 32) | kHoleNanLower32; | 517 (static_cast<uint64_t>(kHoleNanUpper32) << 32) | kHoleNanLower32; |
518 const uint64_t kLastNonNaNInt64 = | 518 const uint64_t kLastNonNaNInt64 = |
519 (static_cast<uint64_t>(kNaNOrInfinityLowerBoundUpper32) << 32); | 519 (static_cast<uint64_t>(kNaNOrInfinityLowerBoundUpper32) << 32); |
520 | 520 |
| 521 |
| 522 enum VariableMode { |
| 523 // User declared variables: |
| 524 VAR, // declared via 'var', and 'function' declarations |
| 525 |
| 526 CONST, // declared via 'const' declarations |
| 527 |
| 528 LET, // declared via 'let' declarations |
| 529 |
| 530 // Variables introduced by the compiler: |
| 531 DYNAMIC, // always require dynamic lookup (we don't know |
| 532 // the declaration) |
| 533 |
| 534 DYNAMIC_GLOBAL, // requires dynamic lookup, but we know that the |
| 535 // variable is global unless it has been shadowed |
| 536 // by an eval-introduced variable |
| 537 |
| 538 DYNAMIC_LOCAL, // requires dynamic lookup, but we know that the |
| 539 // variable is local and where it is unless it |
| 540 // has been shadowed by an eval-introduced |
| 541 // variable |
| 542 |
| 543 INTERNAL, // like VAR, but not user-visible (may or may not |
| 544 // be in a context) |
| 545 |
| 546 TEMPORARY // temporary variables (not user-visible), never |
| 547 // in a context |
| 548 }; |
| 549 |
521 } } // namespace v8::internal | 550 } } // namespace v8::internal |
522 | 551 |
523 #endif // V8_V8GLOBALS_H_ | 552 #endif // V8_V8GLOBALS_H_ |
OLD | NEW |