Exemple #1
0
JSArray* RegExpCachedResult::lastResult(ExecState* exec, JSObject* owner)
{
    if (!m_reified) {
        m_reifiedInput.set(exec->vm(), owner, m_lastInput.get());
        if (m_result)
            m_reifiedResult.setWithoutWriteBarrier(createRegExpMatchesArray(exec, exec->lexicalGlobalObject(), m_lastInput.get(), m_lastRegExp.get(), m_result.start));
        else
            m_reifiedResult.setWithoutWriteBarrier(createEmptyRegExpMatchesArray(exec->lexicalGlobalObject(), m_lastInput.get(), m_lastRegExp.get()));
        m_reifiedLeftContext.clear();
        m_reifiedRightContext.clear();
        m_reified = true;
        exec->vm().heap.writeBarrier(owner);
    }
    return m_reifiedResult.get();
}
Exemple #2
0
JSValue RegExpObject::exec(ExecState* exec, JSString* string)
{
    if (MatchResult result = match(exec, string))
        return createRegExpMatchesArray(exec, string, regExp(), result);
    return jsNull();
}