ScriptIndex.h (1106B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 2 * vim: set ts=8 sts=2 et sw=2 tw=80: 3 * This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #ifndef frontend_ScriptIndex_h 8 #define frontend_ScriptIndex_h 9 10 #include "frontend/TypedIndex.h" // TypedIndex 11 #include "js/GCPolicyAPI.h" // JS::GCPolicy, JS::IgnoreGCPolicy 12 13 namespace js { 14 namespace frontend { 15 16 class ScriptStencil; 17 18 using ScriptIndex = TypedIndex<ScriptStencil>; 19 20 // Represents a range for scripts [start, limit). 21 struct ScriptIndexRange { 22 ScriptIndex start; 23 ScriptIndex limit; 24 25 ScriptIndexRange(ScriptIndex start, ScriptIndex limit) 26 : start(start), limit(limit) { 27 MOZ_ASSERT(start < limit); 28 } 29 }; 30 31 } /* namespace frontend */ 32 } /* namespace js */ 33 34 namespace JS { 35 template <> 36 struct GCPolicy<js::frontend::ScriptIndexRange> 37 : public IgnoreGCPolicy<js::frontend::ScriptIndexRange> {}; 38 } // namespace JS 39 40 #endif /* frontend_ScriptIndex_h */