Module: wine Branch: master Commit: a9f8c2c7c189aef11e47dede0260f364d49c65ad URL: https://source.winehq.org/git/wine.git/?a=commit;h=a9f8c2c7c189aef11e47dede0...
Author: Jacek Caban jacek@codeweavers.com Date: Thu May 10 19:20:28 2018 +0200
jscript: Make String.length non-writable.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/string.c | 10 ++-------- dlls/jscript/tests/api.js | 6 ++++++ dlls/mshtml/tests/es5.js | 1 + 3 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/dlls/jscript/string.c b/dlls/jscript/string.c index ad978f2..737c878 100644 --- a/dlls/jscript/string.c +++ b/dlls/jscript/string.c @@ -119,12 +119,6 @@ static HRESULT String_get_length(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r return S_OK; }
-static HRESULT String_set_length(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t value) -{ - FIXME("%p\n", jsthis); - return E_NOTIMPL; -} - static HRESULT stringobj_to_string(vdisp_t *jsthis, jsval_t *r) { StringInstance *string; @@ -1539,7 +1533,7 @@ static const builtin_prop_t String_props[] = { {indexOfW, String_indexOf, PROPF_METHOD|2}, {italicsW, String_italics, PROPF_METHOD}, {lastIndexOfW, String_lastIndexOf, PROPF_METHOD|2}, - {lengthW, NULL,0, String_get_length, String_set_length}, + {lengthW, NULL,0, String_get_length}, {linkW, String_link, PROPF_METHOD|1}, {localeCompareW, String_localeCompare, PROPF_METHOD|1}, {matchW, String_match, PROPF_METHOD|1}, @@ -1571,7 +1565,7 @@ static const builtin_info_t String_info = { };
static const builtin_prop_t StringInst_props[] = { - {lengthW, NULL,0, String_get_length, String_set_length} + {lengthW, NULL,0, String_get_length} };
static const builtin_info_t StringInst_info = { diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js index f124c46..f9178a9 100644 --- a/dlls/jscript/tests/api.js +++ b/dlls/jscript/tests/api.js @@ -408,6 +408,12 @@ ok(str.toString() === "", "str.toString() = " + str.toString()); var str = new String("test", "abc"); ok(str.toString() === "test", "str.toString() = " + str.toString());
+str = new String("test"); +ok(str.length === 4, "str.length = " + str.length); +str.length = 3; +str.length = 5; +ok(str.length === 4, "str.length = " + str.length); + var strObj = new Object(); strObj.toString = function() { return "abcd" }; strObj.substr = String.prototype.substr; diff --git a/dlls/mshtml/tests/es5.js b/dlls/mshtml/tests/es5.js index efdfb0a..1096307 100644 --- a/dlls/mshtml/tests/es5.js +++ b/dlls/mshtml/tests/es5.js @@ -166,6 +166,7 @@ function test_getOwnPropertyDescriptor() { test_own_data_prop_desc(Math, "PI", false, false, false);
var obj = new String(); + test_own_data_prop_desc(obj, "length", false, false, false); ok(Object.getOwnPropertyDescriptor(obj, "slice") === undefined, "getOwnPropertyDescriptor(slice) did not return undefined"); test_own_data_prop_desc(String.prototype, "slice", true, false, true);