From d5206fb4466690060e3bade8532657846d27ea63 Mon Sep 17 00:00:00 2001 From: "brendan%mozilla.org" Date: Thu, 7 Sep 2006 16:10:48 +0000 Subject: [PATCH] Stop yield from filtering predicate for now (350809, r=igor). --- js/src/js.msg | 1 + js/src/jsinterp.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/js/src/js.msg b/js/src/js.msg index 9a182a89c6e3..b90fa0a9f7c1 100644 --- a/js/src/js.msg +++ b/js/src/js.msg @@ -296,3 +296,4 @@ MSG_DEF(JSMSG_KEYWORD_NOT_NS, 213, 0, JSEXN_SYNTAXERR, "keyword is used MSG_DEF(JSMSG_BAD_GENERATOR_YIELD, 214, 1, JSEXN_TYPEERR, "yield from closing generator {0}") MSG_DEF(JSMSG_BAD_YIELD_SYNTAX, 215, 0, JSEXN_SYNTAXERR, "yield expression must be parenthesized") MSG_DEF(JSMSG_ARRAY_COMP_LEFTSIDE, 216, 0, JSEXN_SYNTAXERR, "invalid array comprehension left-hand side") +MSG_DEF(JSMSG_YIELD_FROM_FILTER, 217, 0, JSEXN_INTERNALERR, "yield not yet supported from filtering predicate") diff --git a/js/src/jsinterp.c b/js/src/jsinterp.c index 53845d2357ec..a8bde3493a01 100644 --- a/js/src/jsinterp.c +++ b/js/src/jsinterp.c @@ -6106,6 +6106,13 @@ interrupt: BEGIN_CASE(JSOP_YIELD) ASSERT_NOT_THROWING(cx); + if (fp->flags & JSFRAME_FILTERING) { + /* FIXME: bug 309894 -- fix to eliminate this error. */ + JS_ReportErrorNumberUC(cx, js_GetErrorMessage, NULL, + JSMSG_YIELD_FROM_FILTER); + ok = JS_FALSE; + goto out; + } if (FRAME_TO_GENERATOR(fp)->state == JSGEN_CLOSING) { str = js_DecompileValueGenerator(cx, JSDVG_SEARCH_STACK, fp->argv[-2], NULL);