diff options
Diffstat (limited to 'js/src/ds/IdValuePair.h')
-rw-r--r-- | js/src/ds/IdValuePair.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/js/src/ds/IdValuePair.h b/js/src/ds/IdValuePair.h new file mode 100644 index 000000000..000fdcf66 --- /dev/null +++ b/js/src/ds/IdValuePair.h @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * vim: set ts=8 sts=4 et sw=4 tw=99: + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef ds_IdValuePair_h +#define ds_IdValuePair_h + +#include "jsapi.h" + +#include "NamespaceImports.h" +#include "gc/Tracer.h" +#include "js/GCVector.h" +#include "js/Id.h" + +namespace js { + +struct IdValuePair +{ + Value value; + jsid id; + + IdValuePair() + : value(UndefinedValue()), id(JSID_EMPTY) + {} + explicit IdValuePair(jsid idArg) + : value(UndefinedValue()), id(idArg) + {} + IdValuePair(jsid idArg, const Value& valueArg) + : value(valueArg), id(idArg) + {} + + void trace(JSTracer* trc) { + TraceRoot(trc, &value, "IdValuePair::value"); + TraceRoot(trc, &id, "IdValuePair::id"); + } +}; + +using IdValueVector = JS::GCVector<IdValuePair>; + +} /* namespace js */ + +#endif /* ds_IdValuePair_h */ |