Jacek Caban : jscript: Added RegExp.global getter implementation.

Alexandre Julliard julliard at winehq.org
Wed May 25 10:41:09 CDT 2016


Module: wine
Branch: master
Commit: b1773131ac85567e7781ecefc5ff54740fedf774
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b1773131ac85567e7781ecefc5ff54740fedf774

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed May 25 14:08:03 2016 +0200

jscript: Added RegExp.global getter implementation.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/jscript/jsregexp.c      | 6 ++++--
 dlls/jscript/tests/regexp.js | 5 +++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/dlls/jscript/jsregexp.c b/dlls/jscript/jsregexp.c
index be9f8d8..e4fae22 100644
--- a/dlls/jscript/jsregexp.c
+++ b/dlls/jscript/jsregexp.c
@@ -264,8 +264,10 @@ static HRESULT RegExp_set_source(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t va
 
 static HRESULT RegExp_get_global(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
 {
-    FIXME("\n");
-    return E_NOTIMPL;
+    TRACE("\n");
+
+    *r = jsval_bool(!!(regexp_from_jsdisp(jsthis)->jsregexp->flags & REG_GLOB));
+    return S_OK;
 }
 
 static HRESULT RegExp_set_global(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t value)
diff --git a/dlls/jscript/tests/regexp.js b/dlls/jscript/tests/regexp.js
index 48f65bc..b200364 100644
--- a/dlls/jscript/tests/regexp.js
+++ b/dlls/jscript/tests/regexp.js
@@ -663,13 +663,18 @@ ok(/abc/.toString(1, false, "3") === "/abc/", "/abc/.toString(1, false, \"3\") =
 re = /x/;
 ok(re.ignoreCase === false, "re.ignoreCase = " + re.ignoreCase);
 ok(re.multiline === false, "re.multiline = " + re.multiline);
+ok(re.global === false, "re.global = " + re.global);
 re = /x/i;
 ok(re.ignoreCase === true, "re.ignoreCase = " + re.ignoreCase);
 ok(re.multiline === false, "re.multiline = " + re.multiline);
+ok(re.global === false, "re.global = " + re.global);
 re = new RegExp("xxx", "gi");
 ok(re.ignoreCase === true, "re.ignoreCase = " + re.ignoreCase);
 ok(re.multiline === false, "re.multiline = " + re.multiline);
+ok(re.global === true, "re.global = " + re.global);
 re = /x/mg;
+ok(re.ignoreCase === false, "re.ignoreCase = " + re.ignoreCase);
 ok(re.multiline === true, "re.multiline = " + re.multiline);
+ok(re.global === true, "re.global = " + re.global);
 
 reportSuccess();




More information about the wine-cvs mailing list