1317090 - Remove js::FindBody.

master
Fedor 2019-09-05 20:05:02 +03:00
parent 58fb36de9e
commit 943a0d43ee
2 changed files with 0 additions and 74 deletions

View File

@ -886,76 +886,6 @@ const Class JSFunction::class_ = {
const Class* const js::FunctionClassPtr = &JSFunction::class_;
/* Find the body of a function (not including braces). */
bool
js::FindBody(JSContext* cx, HandleFunction fun, HandleLinearString src, size_t* bodyStart,
size_t* bodyEnd)
{
// We don't need principals, since those are only used for error reporting.
CompileOptions options(cx);
options.setFileAndLine("internal-findBody", 0);
// For asm.js/wasm modules, there's no script.
if (fun->hasScript())
options.setVersion(fun->nonLazyScript()->getVersion());
AutoKeepAtoms keepAtoms(cx->perThreadData);
AutoStableStringChars stableChars(cx);
if (!stableChars.initTwoByte(cx, src))
return false;
const mozilla::Range<const char16_t> srcChars = stableChars.twoByteRange();
TokenStream ts(cx, options, srcChars.begin().get(), srcChars.length(), nullptr);
int nest = 0;
bool onward = true;
// Skip arguments list.
do {
TokenKind tt;
if (!ts.getToken(&tt))
return false;
switch (tt) {
case TOK_NAME:
case TOK_YIELD:
if (nest == 0)
onward = false;
break;
case TOK_LP:
nest++;
break;
case TOK_RP:
if (--nest == 0)
onward = false;
break;
default:
break;
}
} while (onward);
TokenKind tt;
if (!ts.getToken(&tt))
return false;
if (tt == TOK_ARROW) {
if (!ts.getToken(&tt))
return false;
}
bool braced = tt == TOK_LC;
MOZ_ASSERT_IF(fun->isExprBody(), !braced);
*bodyStart = ts.currentToken().pos.begin;
if (braced)
*bodyStart += 1;
mozilla::RangedPtr<const char16_t> end = srcChars.end();
if (end[-1] == '}') {
end--;
} else {
MOZ_ASSERT(!braced);
for (; unicode::IsSpaceOrBOM2(end[-1]); end--)
;
}
*bodyEnd = end - srcChars.begin();
MOZ_ASSERT(*bodyStart <= *bodyEnd);
return true;
}
JSString*
js::FunctionToString(JSContext* cx, HandleFunction fun, bool prettyPrint)
{

View File

@ -802,10 +802,6 @@ CloneFunctionAndScript(JSContext* cx, HandleFunction fun, HandleObject parent,
gc::AllocKind kind = gc::AllocKind::FUNCTION,
HandleObject proto = nullptr);
extern bool
FindBody(JSContext* cx, HandleFunction fun, HandleLinearString src, size_t* bodyStart,
size_t* bodyEnd);
} // namespace js
inline js::FunctionExtended*