1// Copyright 2006-2008 the V8 project authors. All rights reserved. 2// Redistribution and use in source and binary forms, with or without 3// modification, are permitted provided that the following conditions are 4// met: 5// 6// * Redistributions of source code must retain the above copyright 7// notice, this list of conditions and the following disclaimer. 8// * Redistributions in binary form must reproduce the above 9// copyright notice, this list of conditions and the following 10// disclaimer in the documentation and/or other materials provided 11// with the distribution. 12// * Neither the name of Google Inc. nor the names of its 13// contributors may be used to endorse or promote products derived 14// from this software without specific prior written permission. 15// 16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 28#include "v8.h" 29 30namespace v8 { 31namespace internal { 32 33 34#ifdef DEBUG 35void LookupResult::Print() { 36 if (!IsFound()) { 37 PrintF("Not Found\n"); 38 return; 39 } 40 41 PrintF("LookupResult:\n"); 42 PrintF(" -cacheable = %s\n", IsCacheable() ? "true" : "false"); 43 PrintF(" -attributes = %x\n", GetAttributes()); 44 switch (type()) { 45 case NORMAL: 46 PrintF(" -type = normal\n"); 47 PrintF(" -entry = %d", GetDictionaryEntry()); 48 break; 49 case MAP_TRANSITION: 50 PrintF(" -type = map transition\n"); 51 PrintF(" -map:\n"); 52 GetTransitionMap()->Print(); 53 PrintF("\n"); 54 break; 55 case CONSTANT_FUNCTION: 56 PrintF(" -type = constant function\n"); 57 PrintF(" -function:\n"); 58 GetConstantFunction()->Print(); 59 PrintF("\n"); 60 break; 61 case FIELD: 62 PrintF(" -type = field\n"); 63 PrintF(" -index = %d", GetFieldIndex()); 64 PrintF("\n"); 65 break; 66 case CALLBACKS: 67 PrintF(" -type = call backs\n"); 68 PrintF(" -callback object:\n"); 69 GetCallbackObject()->Print(); 70 break; 71 case INTERCEPTOR: 72 PrintF(" -type = lookup interceptor\n"); 73 break; 74 case CONSTANT_TRANSITION: 75 PrintF(" -type = constant property transition\n"); 76 break; 77 case NULL_DESCRIPTOR: 78 PrintF(" =type = null descriptor\n"); 79 break; 80 } 81} 82 83 84void Descriptor::Print() { 85 PrintF("Descriptor "); 86 GetKey()->ShortPrint(); 87 PrintF(" @ "); 88 GetValue()->ShortPrint(); 89 PrintF(" %d\n", GetDetails().index()); 90} 91 92 93#endif 94 95 96} } // namespace v8::internal 97