diff options
Diffstat (limited to 'Source/JavaScriptCore/bytecode/PutByIdFlags.h')
| -rw-r--r-- | Source/JavaScriptCore/bytecode/PutByIdFlags.h | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/Source/JavaScriptCore/bytecode/PutByIdFlags.h b/Source/JavaScriptCore/bytecode/PutByIdFlags.h deleted file mode 100644 index 6ad364393..000000000 --- a/Source/JavaScriptCore/bytecode/PutByIdFlags.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 2015 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef PutByIdFlags_h -#define PutByIdFlags_h - -#include "StructureIDTable.h" - -namespace JSC { - -enum PutByIdFlags : intptr_t { - PutByIdNone = 0, - - // This flag indicates that the put_by_id is direct. That means that we store the property without - // checking if the prototype chain has a setter. - PutByIdIsDirect = 0x1, - PutByIdPersistentFlagsMask = 0x1, - - // NOTE: The values below must be in sync with what is in LowLevelInterpreter.asm. - - // Determining the required inferred type involves first checking the primary type mask, and then - // using that to figure out the meaning of the secondary mask: - // switch (flags & PutByIdPrimaryTypeMask) { - // case PutByIdPrimaryTypeSecondary: - // switch (flags & PutByIdSecondaryTypeMask) { - // ... - // } - // break; - // case PutByIdPrimaryTypeObjectWithStructure: - // case PutByIdPrimaryTypeObjectWithStructureOrOther: - // StructureID structureID = decodeStructureID(flags); - // break; - // } - PutByIdPrimaryTypeMask = 0x6, - PutByIdPrimaryTypeSecondary = 0x0, // Need to check the secondary type mask for the type. - PutByIdPrimaryTypeObjectWithStructure = 0x2, // Secondary type has structure ID. - PutByIdPrimaryTypeObjectWithStructureOrOther = 0x4, // Secondary type has structure ID. - - PutByIdSecondaryTypeMask = -0x8, - PutByIdSecondaryTypeBottom = 0x0, - PutByIdSecondaryTypeBoolean = 0x8, - PutByIdSecondaryTypeOther = 0x10, - PutByIdSecondaryTypeInt32 = 0x18, - PutByIdSecondaryTypeNumber = 0x20, - PutByIdSecondaryTypeString = 0x28, - PutByIdSecondaryTypeSymbol = 0x30, - PutByIdSecondaryTypeObject = 0x38, - PutByIdSecondaryTypeObjectOrOther = 0x40, - PutByIdSecondaryTypeTop = 0x48 -}; - -inline PutByIdFlags encodeStructureID(StructureID id) -{ -#if USE(JSVALUE64) - return static_cast<PutByIdFlags>(static_cast<PutByIdFlags>(id) << 3); -#else - PutByIdFlags result = bitwise_cast<PutByIdFlags>(id); - ASSERT(!(result & ~PutByIdSecondaryTypeMask)); - return result; -#endif -} - -inline StructureID decodeStructureID(PutByIdFlags flags) -{ -#if USE(JSVALUE64) - return static_cast<StructureID>(flags >> 3); -#else - return bitwise_cast<StructureID>(flags & PutByIdSecondaryTypeMask); -#endif -} - -} // namespace JSC - -namespace WTF { - -class PrintStream; - -void printInternal(PrintStream&, JSC::PutByIdFlags); - -} // namespace WTF - -#endif // PutByIdFlags_h - |
