コード例 #1
0
bool
JavaScriptShared::fromJSIDVariant(JSContext* cx, const JSIDVariant& from, MutableHandleId to)
{
    switch (from.type()) {
      case JSIDVariant::TSymbolVariant: {
        Symbol* sym = fromSymbolVariant(cx, from.get_SymbolVariant());
        if (!sym)
            return false;
        to.set(SYMBOL_TO_JSID(sym));
        return true;
      }

      case JSIDVariant::TnsString:
        return convertGeckoStringToId(cx, from.get_nsString(), to);

      case JSIDVariant::Tint32_t:
        to.set(INT_TO_JSID(from.get_int32_t()));
        return true;

      default:
        return false;
    }
}
コード例 #2
0
ファイル: jsatom.cpp プロジェクト: mmatyas/mozjs
bool
js::IndexToIdSlow(ExclusiveContext *cx, uint32_t index, MutableHandleId idp)
{
    MOZ_ASSERT(index > JSID_INT_MAX);

    char16_t buf[UINT32_CHAR_BUFFER_LENGTH];
    RangedPtr<char16_t> end(ArrayEnd(buf), buf, ArrayEnd(buf));
    RangedPtr<char16_t> start = BackfillIndexInCharBuffer(index, end);

    JSAtom *atom = AtomizeChars(cx, start.get(), end - start);
    if (!atom)
        return false;

    idp.set(JSID_FROM_BITS((size_t)atom));
    return true;
}