diff options
Diffstat (limited to 'Source/JavaScriptCore/bytecode/ResolveOperation.h')
-rw-r--r-- | Source/JavaScriptCore/bytecode/ResolveOperation.h | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/Source/JavaScriptCore/bytecode/ResolveOperation.h b/Source/JavaScriptCore/bytecode/ResolveOperation.h deleted file mode 100644 index 1543ef209..000000000 --- a/Source/JavaScriptCore/bytecode/ResolveOperation.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (C) 2012 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 ResolveOperation_h -#define ResolveOperation_h - -#include "PropertyOffset.h" -#include "WriteBarrier.h" - -#include <wtf/Vector.h> - -namespace JSC { - -class Structure; - -struct ResolveOperation { - typedef enum { - Fail, - SetBaseToUndefined, - ReturnScopeAsBase, - SetBaseToScope, - SetBaseToGlobal, - GetAndReturnScopedVar, - GetAndReturnGlobalVar, - GetAndReturnGlobalVarWatchable, - SkipTopScopeNode, - SkipScopes, - ReturnGlobalObjectAsBase, - GetAndReturnGlobalProperty, - CheckForDynamicEntriesBeforeGlobalScope - } ResolveOperationType; - - ResolveOperationType m_operation; - WriteBarrier<Structure> m_structure; - union { - PropertyOffset m_offset; - WriteBarrier<Unknown>* m_registerAddress; - int m_scopesToSkip; - int m_activationRegister; - }; - static ResolveOperation getAndReturnScopedVar(PropertyOffset offset) - { - ResolveOperation op; - op.m_operation = GetAndReturnScopedVar; - op.m_offset = offset; - return op; - } - static ResolveOperation checkForDynamicEntriesBeforeGlobalScope() - { - ResolveOperation op; - op.m_operation = CheckForDynamicEntriesBeforeGlobalScope; - return op; - } - - static ResolveOperation getAndReturnGlobalVar(WriteBarrier<Unknown>* registerAddress, bool couldBeWatched) - { - ResolveOperation op; - op.m_operation = couldBeWatched ? GetAndReturnGlobalVarWatchable : GetAndReturnGlobalVar; - op.m_registerAddress = registerAddress; - return op; - } - static ResolveOperation getAndReturnGlobalProperty() - { - ResolveOperation op; - op.m_operation = GetAndReturnGlobalProperty; - return op; - } - static ResolveOperation resolveFail() - { - ResolveOperation op; - op.m_operation = Fail; - return op; - } - static ResolveOperation skipTopScopeNode(int activationRegister) - { - ResolveOperation op; - op.m_operation = SkipTopScopeNode; - op.m_activationRegister = activationRegister; - return op; - } - static ResolveOperation skipScopes(int scopesToSkip) - { - ResolveOperation op; - op.m_operation = SkipScopes; - op.m_scopesToSkip = scopesToSkip; - return op; - } - static ResolveOperation returnGlobalObjectAsBase() - { - ResolveOperation op; - op.m_operation = ReturnGlobalObjectAsBase; - return op; - } - static ResolveOperation setBaseToGlobal() - { - ResolveOperation op; - op.m_operation = SetBaseToGlobal; - return op; - } - static ResolveOperation setBaseToUndefined() - { - ResolveOperation op; - op.m_operation = SetBaseToUndefined; - return op; - } - static ResolveOperation setBaseToScope() - { - ResolveOperation op; - op.m_operation = SetBaseToScope; - return op; - } - static ResolveOperation returnScopeAsBase() - { - ResolveOperation op; - op.m_operation = ReturnScopeAsBase; - return op; - } -}; - -typedef Vector<ResolveOperation> ResolveOperations; - -struct PutToBaseOperation { - PutToBaseOperation(bool isStrict) - : m_kind(Uninitialised) - , m_isDynamic(false) - , m_isStrict(isStrict) - , m_predicatePointer(0) - { - - } - enum Kind { Uninitialised, Generic, Readonly, GlobalVariablePut, GlobalVariablePutChecked, GlobalPropertyPut, VariablePut }; - union { - Kind m_kind : 8; - uint8_t m_kindAsUint8; - }; - bool m_isDynamic : 8; - bool m_isStrict : 8; - union { - bool* m_predicatePointer; - unsigned m_scopeDepth; - }; - WriteBarrier<Structure> m_structure; - union { - // Used for GlobalVariablePut - WriteBarrier<Unknown>* m_registerAddress; - - // Used for GlobalPropertyPut and VariablePut - struct { - PropertyOffset m_offset; - int32_t m_offsetInButterfly; - }; - }; -}; -} - -#endif // ResolveOperation_h |