From 83de7691c677967568321201318714968b0a34bf Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 11 May 2018 14:43:20 +0200 Subject: [PATCH] jscript: Add Object.defineProperty implementation. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/jscript/dispex.c | 81 ++++++++++++ dlls/jscript/jscript.h | 11 ++ dlls/jscript/jscript.rc | 4 + dlls/jscript/object.c | 200 +++++++++++++++++++++++++++++- dlls/jscript/resource.h | 6 + dlls/mshtml/tests/documentmode.js | 1 + dlls/mshtml/tests/es5.js | 99 ++++++++++++++- dlls/mshtml/tests/winetest.js | 4 + po/ar.po | 18 +++ po/bg.po | 18 +++ po/ca.po | 18 +++ po/cs.po | 18 +++ po/da.po | 18 +++ po/de.po | 18 +++ po/el.po | 18 +++ po/en.po | 20 +++ po/en_US.po | 20 +++ po/eo.po | 18 +++ po/es.po | 18 +++ po/fa.po | 18 +++ po/fi.po | 18 +++ po/fr.po | 18 +++ po/he.po | 18 +++ po/hi.po | 18 +++ po/hr.po | 18 +++ po/hu.po | 18 +++ po/it.po | 18 +++ po/ja.po | 18 +++ po/ko.po | 18 +++ po/lt.po | 18 +++ po/ml.po | 18 +++ po/nb_NO.po | 18 +++ po/nl.po | 18 +++ po/or.po | 18 +++ po/pa.po | 18 +++ po/pl.po | 18 +++ po/pt_BR.po | 18 +++ po/pt_PT.po | 18 +++ po/rm.po | 18 +++ po/ro.po | 18 +++ po/ru.po | 18 +++ po/sk.po | 18 +++ po/sl.po | 18 +++ po/sr_RS@cyrillic.po | 18 +++ po/sr_RS@latin.po | 18 +++ po/sv.po | 18 +++ po/te.po | 18 +++ po/th.po | 18 +++ po/tr.po | 18 +++ po/uk.po | 18 +++ po/wa.po | 18 +++ po/wine.pot | 18 +++ po/zh_CN.po | 18 +++ po/zh_TW.po | 18 +++ 54 files changed, 1232 insertions(+), 6 deletions(-) diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c index 1c9595fb836..7a2879a98c0 100644 --- a/dlls/jscript/dispex.c +++ b/dlls/jscript/dispex.c @@ -1607,6 +1607,8 @@ HRESULT jsdisp_get_own_property(jsdisp_t *obj, const WCHAR *name, BOOL flags_onl switch(prop->type) { case PROP_BUILTIN: case PROP_JSVAL: + desc->mask |= PROPF_WRITABLE; + desc->explicit_value = TRUE; if(!flags_only) { hres = prop_get(obj, prop, &desc->value); if(FAILED(hres)) @@ -1618,5 +1620,84 @@ HRESULT jsdisp_get_own_property(jsdisp_t *obj, const WCHAR *name, BOOL flags_onl } desc->flags = prop->flags & (PROPF_ENUMERABLE | PROPF_WRITABLE | PROPF_CONFIGURABLE); + desc->mask |= PROPF_ENUMERABLE | PROPF_CONFIGURABLE; + return S_OK; +} + +HRESULT jsdisp_define_property(jsdisp_t *obj, const WCHAR *name, property_desc_t *desc) +{ + dispex_prop_t *prop; + HRESULT hres; + + hres = find_prop_name(obj, string_hash(name), name, &prop); + if(FAILED(hres)) + return hres; + + if(!prop && !(prop = alloc_prop(obj, name, PROP_DELETED, 0))) + return E_OUTOFMEMORY; + + if(prop->type == PROP_DELETED || prop->type == PROP_PROTREF) { + prop->flags = desc->flags; + if(desc->explicit_getter || desc->explicit_setter) { + FIXME("accessor property\n"); + return E_NOTIMPL; + }else { + prop->type = PROP_JSVAL; + if(desc->explicit_value) { + hres = jsval_copy(desc->value, &prop->u.val); + if(FAILED(hres)) + return hres; + }else { + prop->u.val = jsval_undefined(); + } + TRACE("%s = %s\n", debugstr_w(name), debugstr_jsval(prop->u.val)); + } + return S_OK; + } + + TRACE("existing prop %s prop flags %x desc flags %x desc mask %x\n", debugstr_w(name), + prop->flags, desc->flags, desc->mask); + + if(!(prop->flags & PROPF_CONFIGURABLE)) { + if(((desc->mask & PROPF_CONFIGURABLE) && (desc->flags & PROPF_CONFIGURABLE)) + || ((desc->mask & PROPF_ENUMERABLE) + && ((desc->flags & PROPF_ENUMERABLE) != (prop->flags & PROPF_ENUMERABLE)))) + return throw_type_error(obj->ctx, JS_E_NONCONFIGURABLE_REDEFINED, name); + } + + if(desc->explicit_value || (desc->mask & PROPF_WRITABLE)) { + if(!(prop->flags & PROPF_CONFIGURABLE) && !(prop->flags & PROPF_WRITABLE)) { + if((desc->mask & PROPF_WRITABLE) && (desc->flags & PROPF_WRITABLE)) + return throw_type_error(obj->ctx, JS_E_NONWRITABLE_MODIFIED, name); + if(desc->explicit_value) { + if(prop->type == PROP_JSVAL) { + BOOL eq; + hres = jsval_strict_equal(desc->value, prop->u.val, &eq); + if(FAILED(hres)) + return hres; + if(!eq) + return throw_type_error(obj->ctx, JS_E_NONWRITABLE_MODIFIED, name); + }else { + FIXME("redefinition of property type %d\n", prop->type); + } + } + } + if(desc->explicit_value) { + if(prop->type == PROP_JSVAL) + jsval_release(prop->u.val); + else + prop->type = PROP_JSVAL; + hres = jsval_copy(desc->value, &prop->u.val); + if(FAILED(hres)) { + prop->u.val = jsval_undefined(); + return hres; + } + } + }else if(desc->explicit_getter || desc->explicit_setter) { + FIXME("accessor property\n"); + return E_NOTIMPL; + } + + prop->flags = (prop->flags & ~desc->mask) | (desc->flags & desc->mask); return S_OK; } diff --git a/dlls/jscript/jscript.h b/dlls/jscript/jscript.h index 4f2acc5dbd8..2beee26ad5b 100644 --- a/dlls/jscript/jscript.h +++ b/dlls/jscript/jscript.h @@ -294,6 +294,7 @@ HRESULT disp_delete(IDispatch*,DISPID,BOOL*) DECLSPEC_HIDDEN; HRESULT disp_delete_name(script_ctx_t*,IDispatch*,jsstr_t*,BOOL*) DECLSPEC_HIDDEN; HRESULT jsdisp_delete_idx(jsdisp_t*,DWORD) DECLSPEC_HIDDEN; HRESULT jsdisp_get_own_property(jsdisp_t*,const WCHAR*,BOOL,property_desc_t*) DECLSPEC_HIDDEN; +HRESULT jsdisp_define_property(jsdisp_t*,const WCHAR*,property_desc_t*) DECLSPEC_HIDDEN; HRESULT create_builtin_function(script_ctx_t*,builtin_invoke_t,const WCHAR*,const builtin_info_t*,DWORD, jsdisp_t*,jsdisp_t**) DECLSPEC_HIDDEN; @@ -378,7 +379,13 @@ typedef struct { struct _property_desc_t { unsigned flags; + unsigned mask; + BOOL explicit_value; jsval_t value; + BOOL explicit_getter; + jsdisp_t *getter; + BOOL explicit_setter; + jsdisp_t *setter; }; typedef struct { @@ -556,6 +563,10 @@ static inline DWORD make_grfdex(script_ctx_t *ctx, DWORD flags) #define JS_E_PRECISION_OUT_OF_RANGE MAKE_JSERROR(IDS_PRECISION_OUT_OF_RANGE) #define JS_E_INVALID_LENGTH MAKE_JSERROR(IDS_INVALID_LENGTH) #define JS_E_ARRAY_EXPECTED MAKE_JSERROR(IDS_ARRAY_EXPECTED) +#define JS_E_NONCONFIGURABLE_REDEFINED MAKE_JSERROR(IDS_NONCONFIGURABLE_REDEFINED) +#define JS_E_NONWRITABLE_MODIFIED MAKE_JSERROR(IDS_NONWRITABLE_MODIFIED) +#define JS_E_PROP_DESC_MISMATCH MAKE_JSERROR(IDS_PROP_DESC_MISMATCH) +#define JS_E_INVALID_WRITABLE_PROP_DESC MAKE_JSERROR(IDS_INVALID_WRITABLE_PROP_DESC) static inline BOOL is_jscript_error(HRESULT hres) { diff --git a/dlls/jscript/jscript.rc b/dlls/jscript/jscript.rc index 0b4be7031c1..5507b56adf8 100644 --- a/dlls/jscript/jscript.rc +++ b/dlls/jscript/jscript.rc @@ -65,6 +65,10 @@ STRINGTABLE IDS_PRECISION_OUT_OF_RANGE "Precision is out of range" IDS_INVALID_LENGTH "Array length must be a finite positive integer" IDS_ARRAY_EXPECTED "Array object expected" + IDS_INVALID_WRITABLE_PROP_DESC "'writable' attribute on the property descriptor cannot be set to 'true' on this object" + IDS_NONCONFIGURABLE_REDEFINED "Cannot redefine non-configurable property '|'" + IDS_NONWRITABLE_MODIFIED "Cannot modify non-writable property '|'" + IDS_PROP_DESC_MISMATCH "Property cannot have both accessors and a value" } LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c index 315c846b084..84d36c94486 100644 --- a/dlls/jscript/object.c +++ b/dlls/jscript/object.c @@ -34,6 +34,7 @@ static const WCHAR isPrototypeOfW[] = {'i','s','P','r','o','t','o','t','y','p',' static const WCHAR getOwnPropertyDescriptorW[] = {'g','e','t','O','w','n','P','r','o','p','e','r','t','y','D','e','s','c','r','i','p','t','o','r',0}; +static const WCHAR definePropertyW[] = {'d','e','f','i','n','e','P','r','o','p','e','r','t','y',0}; static const WCHAR default_valueW[] = {'[','o','b','j','e','c','t',' ','O','b','j','e','c','t',']',0}; @@ -41,6 +42,8 @@ static const WCHAR configurableW[] = {'c','o','n','f','i','g','u','r','a','b','l static const WCHAR enumerableW[] = {'e','n','u','m','e','r','a','b','l','e',0}; static const WCHAR valueW[] = {'v','a','l','u','e',0}; static const WCHAR writableW[] = {'w','r','i','t','a','b','l','e',0}; +static const WCHAR getW[] = {'g','e','t',0}; +static const WCHAR setW[] = {'s','e','t',0}; static HRESULT Object_toString(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r) @@ -263,7 +266,185 @@ static const builtin_info_t ObjectInst_info = { static void release_property_descriptor(property_desc_t *desc) { - jsval_release(desc->value); + if(desc->explicit_value) + jsval_release(desc->value); + if(desc->getter) + jsdisp_release(desc->getter); + if(desc->setter) + jsdisp_release(desc->setter); +} + +static HRESULT to_property_descriptor(script_ctx_t *ctx, jsdisp_t *attr_obj, property_desc_t *desc) +{ + DISPID id; + jsval_t v; + BOOL b; + HRESULT hres; + + memset(desc, 0, sizeof(*desc)); + desc->value = jsval_undefined(); + + hres = jsdisp_get_id(attr_obj, enumerableW, 0, &id); + if(SUCCEEDED(hres)) { + desc->mask |= PROPF_ENUMERABLE; + hres = jsdisp_propget(attr_obj, id, &v); + if(FAILED(hres)) + return hres; + hres = to_boolean(v, &b); + jsval_release(v); + if(FAILED(hres)) + return hres; + if(b) + desc->flags |= PROPF_ENUMERABLE; + }else if(hres != DISP_E_UNKNOWNNAME) { + return hres; + } + + hres = jsdisp_get_id(attr_obj, configurableW, 0, &id); + if(SUCCEEDED(hres)) { + desc->mask |= PROPF_CONFIGURABLE; + hres = jsdisp_propget(attr_obj, id, &v); + if(FAILED(hres)) + return hres; + hres = to_boolean(v, &b); + jsval_release(v); + if(FAILED(hres)) + return hres; + if(b) + desc->flags |= PROPF_CONFIGURABLE; + }else if(hres != DISP_E_UNKNOWNNAME) { + return hres; + } + + hres = jsdisp_get_id(attr_obj, valueW, 0, &id); + if(SUCCEEDED(hres)) { + hres = jsdisp_propget(attr_obj, id, &desc->value); + if(FAILED(hres)) + return hres; + desc->explicit_value = TRUE; + }else if(hres != DISP_E_UNKNOWNNAME) { + return hres; + } + + hres = jsdisp_get_id(attr_obj, writableW, 0, &id); + if(SUCCEEDED(hres)) { + desc->mask |= PROPF_WRITABLE; + hres = jsdisp_propget(attr_obj, id, &v); + if(SUCCEEDED(hres)) { + hres = to_boolean(v, &b); + jsval_release(v); + if(SUCCEEDED(hres) && b) + desc->flags |= PROPF_WRITABLE; + } + }else if(hres == DISP_E_UNKNOWNNAME) { + hres = S_OK; + } + if(FAILED(hres)) { + release_property_descriptor(desc); + return hres; + } + + hres = jsdisp_get_id(attr_obj, getW, 0, &id); + if(SUCCEEDED(hres)) { + desc->explicit_getter = TRUE; + hres = jsdisp_propget(attr_obj, id, &v); + if(SUCCEEDED(hres) && !is_undefined(v)) { + if(!is_object_instance(v)) { + FIXME("getter is not an object\n"); + jsval_release(v); + hres = E_FAIL; + }else { + /* FIXME: Check IsCallable */ + desc->getter = to_jsdisp(get_object(v)); + if(!desc->getter) + FIXME("getter is not JS object\n"); + } + } + }else if(hres == DISP_E_UNKNOWNNAME) { + hres = S_OK; + } + if(FAILED(hres)) { + release_property_descriptor(desc); + return hres; + } + + hres = jsdisp_get_id(attr_obj, setW, 0, &id); + if(SUCCEEDED(hres)) { + desc->explicit_setter = TRUE; + hres = jsdisp_propget(attr_obj, id, &v); + if(SUCCEEDED(hres) && !is_undefined(v)) { + if(!is_object_instance(v)) { + FIXME("setter is not an object\n"); + jsval_release(v); + hres = E_FAIL; + }else { + /* FIXME: Check IsCallable */ + desc->setter = to_jsdisp(get_object(v)); + if(!desc->setter) + FIXME("setter is not JS object\n"); + } + } + }else if(hres == DISP_E_UNKNOWNNAME) { + hres = S_OK; + } + if(FAILED(hres)) { + release_property_descriptor(desc); + return hres; + } + + if(desc->explicit_getter || desc->explicit_setter) { + if(desc->explicit_value) + hres = throw_type_error(ctx, JS_E_PROP_DESC_MISMATCH, NULL); + else if(desc->mask & PROPF_WRITABLE) + hres = throw_type_error(ctx, JS_E_INVALID_WRITABLE_PROP_DESC, NULL); + } + + if(FAILED(hres)) + release_property_descriptor(desc); + return hres; +} + +static HRESULT Object_defineProperty(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, + unsigned argc, jsval_t *argv, jsval_t *r) +{ + property_desc_t prop_desc; + jsdisp_t *obj, *attr_obj; + const WCHAR *name; + jsstr_t *name_str; + HRESULT hres; + + TRACE("\n"); + + if(argc < 1 || !is_object_instance(argv[0])) + return throw_type_error(ctx, JS_E_OBJECT_EXPECTED, NULL); + obj = to_jsdisp(get_object(argv[0])); + if(!obj) { + FIXME("not implemented non-JS object\n"); + return E_NOTIMPL; + } + + hres = to_flat_string(ctx, argc >= 2 ? argv[1] : jsval_undefined(), &name_str, &name); + if(FAILED(hres)) + return hres; + + if(argc >= 3 && is_object_instance(argv[2])) { + attr_obj = to_jsdisp(get_object(argv[2])); + if(attr_obj) { + hres = to_property_descriptor(ctx, attr_obj, &prop_desc); + }else { + FIXME("not implemented non-JS object\n"); + hres = E_NOTIMPL; + } + }else { + hres = throw_type_error(ctx, JS_E_OBJECT_EXPECTED, NULL); + } + jsstr_release(name_str); + if(FAILED(hres)) + return hres; + + hres = jsdisp_define_property(obj, name, &prop_desc); + release_property_descriptor(&prop_desc); + return hres; } static HRESULT Object_getOwnPropertyDescriptor(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, @@ -302,10 +483,18 @@ static HRESULT Object_getOwnPropertyDescriptor(script_ctx_t *ctx, vdisp_t *jsthi if(FAILED(hres)) return hres; - hres = jsdisp_propput_name(desc_obj, valueW, prop_desc.value); - if(SUCCEEDED(hres)) - hres = jsdisp_propput_name(desc_obj, writableW, - jsval_bool(!!(prop_desc.flags & PROPF_WRITABLE))); + if(prop_desc.explicit_getter || prop_desc.explicit_setter) { + hres = jsdisp_propput_name(desc_obj, getW, prop_desc.getter + ? jsval_obj(prop_desc.getter) : jsval_undefined()); + if(SUCCEEDED(hres)) + hres = jsdisp_propput_name(desc_obj, setW, prop_desc.setter + ? jsval_obj(prop_desc.setter) : jsval_undefined()); + }else { + hres = jsdisp_propput_name(desc_obj, valueW, prop_desc.value); + if(SUCCEEDED(hres)) + hres = jsdisp_propput_name(desc_obj, writableW, + jsval_bool(!!(prop_desc.flags & PROPF_WRITABLE))); + } if(SUCCEEDED(hres)) hres = jsdisp_propput_name(desc_obj, enumerableW, jsval_bool(!!(prop_desc.flags & PROPF_ENUMERABLE))); @@ -322,6 +511,7 @@ static HRESULT Object_getOwnPropertyDescriptor(script_ctx_t *ctx, vdisp_t *jsthi } static const builtin_prop_t ObjectConstr_props[] = { + {definePropertyW, Object_defineProperty, PROPF_ES5|PROPF_METHOD|2}, {getOwnPropertyDescriptorW, Object_getOwnPropertyDescriptor, PROPF_ES5|PROPF_METHOD|2} }; diff --git a/dlls/jscript/resource.h b/dlls/jscript/resource.h index 9c0cebf14ed..d15dd7a0339 100644 --- a/dlls/jscript/resource.h +++ b/dlls/jscript/resource.h @@ -63,3 +63,9 @@ #define IDS_PRECISION_OUT_OF_RANGE 0x13A3 #define IDS_INVALID_LENGTH 0x13A5 #define IDS_ARRAY_EXPECTED 0x13A7 +#define IDS_INVALID_WRITABLE_PROP_DESC 0x13AC +#define IDS_NONCONFIGURABLE_REDEFINED 0x13D6 +#define IDS_NONWRITABLE_MODIFIED 0x13D7 +/* FIXME: This is not compatible with native, but we would + * conflict with IDS_UNSUPPORTED_ACTION otherwise */ +#define IDS_PROP_DESC_MISMATCH 0x1F00 diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js index 1525b095cf2..e30aa93b83a 100644 --- a/dlls/mshtml/tests/documentmode.js +++ b/dlls/mshtml/tests/documentmode.js @@ -143,6 +143,7 @@ function test_javascript() { /* FIXME: IE8 implements weird semi-functional property descriptors. */ if(v != 8) { test_exposed("getOwnPropertyDescriptor", Object, v >= 8); + test_exposed("defineProperty", Object, v >= 8); } test_parses("if(false) { o.default; }", v >= 9); diff --git a/dlls/mshtml/tests/es5.js b/dlls/mshtml/tests/es5.js index a769a499ff8..92024cf87d4 100644 --- a/dlls/mshtml/tests/es5.js +++ b/dlls/mshtml/tests/es5.js @@ -16,6 +16,11 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +var JS_E_PROP_DESC_MISMATCH = 0x800a01bd; +var JS_E_INVALID_WRITABLE_PROP_DESC = 0x800a13ac; +var JS_E_NONCONFIGURABLE_REDEFINED = 0x800a13d6; +var JS_E_NONWRITABLE_MODIFIED = 0x800a13d7; + function test_date_now() { var now = Date.now(); var time = (new Date()).getTime(); @@ -188,11 +193,103 @@ function test_getOwnPropertyDescriptor() { next_test(); } +function test_defineProperty() { + function expect_exception(func, expected_number) { + try { + func(); + }catch(e) { + var n = e.number + 0x100000000; /* make it unsigned like HRESULT */ + todo_wine_if(expected_number == JS_E_PROP_DESC_MISMATCH). + ok(n === expected_number, "got exception " + n.toString(16) + + " expected " + expected_number.toString(16)); + ok(e.name === "TypeError", "e.name = " + e.name); + return; + } + ok(false, "expected exception"); + } + + var obj = new Object(); + Object.defineProperty(obj, "test", {}); + ok("test" in obj, "test is not in obj"); + test_own_data_prop_desc(obj, "test", false, false, false); + ok(obj.test === undefined, "obj.test = " + obj.test); + + Object.defineProperty(obj, "all", {writable: true, enumerable: true, configurable: true, value: 1}); + test_own_data_prop_desc(obj, "all", true, true, true); + ok(obj.all === 1, "obj.test = " + obj.test); + + Object.defineProperty(obj, "all", {writable: false}); + test_own_data_prop_desc(obj, "all", false, true, true); + ok(obj.all === 1, "obj.test = " + obj.test); + + Object.defineProperty(obj, "notConf", {writable: true, enumerable: true, configurable: false, value: 1}); + test_own_data_prop_desc(obj, "notConf", true, true, false); + + expect_exception(function() { + Object.defineProperty(obj, "notConf", + {writable: true, enumerable: true, configurable: true, value: 1}); + }, JS_E_NONCONFIGURABLE_REDEFINED); + + expect_exception(function() { + Object.defineProperty(obj, "notConf", + {writable: true, enumerable: false, configurable: false, value: 1}); + }, JS_E_NONCONFIGURABLE_REDEFINED); + + Object.defineProperty(obj, "notConf", + {writable: true, enumerable: true, configurable: false, value: 2}); + test_own_data_prop_desc(obj, "notConf", true, true, false); + + Object.defineProperty(obj, "notConf", {writable: true, value: 2}); + test_own_data_prop_desc(obj, "notConf", true, true, false); + + Object.defineProperty(obj, "notConf2", + {writable: false, enumerable: false, configurable: false, value: 1}); + test_own_data_prop_desc(obj, "notConf2", false, false, false); + obj.notConf2 = 2; + ok(obj.notConf2 === 1, "obj.notConf2 = " + obj.notConf2) + + expect_exception(function() { + Object.defineProperty(obj, "notConf2", + {writable: false, enumerable: false, configurable: true, value: 1}); + }, JS_E_NONCONFIGURABLE_REDEFINED); + + expect_exception(function() { + Object.defineProperty(obj, "notConf2", + {writable: false, enumerable: true, configurable: false, value: 1}); + }, JS_E_NONCONFIGURABLE_REDEFINED); + + expect_exception(function() { + Object.defineProperty(obj, "notConf2", {writable: true, value: 1}); + }, JS_E_NONWRITABLE_MODIFIED); + + expect_exception(function() { + Object.defineProperty(obj, "notConf2", {value: 2}); + }, JS_E_NONWRITABLE_MODIFIED); + + Object.defineProperty(obj, "notConf2", + {writable: false, enumerable: false, configurable: false, value: 1}); + test_own_data_prop_desc(obj, "notConf2", false, false, false); + + Object.defineProperty(obj, "notConf2", {writable: false, value: 1}); + test_own_data_prop_desc(obj, "notConf2", false, false, false); + + expect_exception(function() { + Object.defineProperty(obj, "invaliddesc", {get: undefined, value: 1}); + }, JS_E_PROP_DESC_MISMATCH); + + expect_exception(function() { + Object.defineProperty(obj, "invaliddesc", {set: undefined, writable: true}); + }, JS_E_INVALID_WRITABLE_PROP_DESC); + + next_test(); +} + var tests = [ test_date_now, test_toISOString, test_indexOf, test_isArray, test_identifier_keywords, - test_getOwnPropertyDescriptor + test_getOwnPropertyDescriptor, + test_defineProperty ]; diff --git a/dlls/mshtml/tests/winetest.js b/dlls/mshtml/tests/winetest.js index 3f1b38b2b59..e5fe867017f 100644 --- a/dlls/mshtml/tests/winetest.js +++ b/dlls/mshtml/tests/winetest.js @@ -57,3 +57,7 @@ var todo_wine = { return external.todo_wine_ok(b,m); } }; + +function todo_wine_if(expr) { + return expr ? todo_wine : { ok: ok }; +} diff --git a/po/ar.po b/po/ar.po index e3baa53bfcc..90638b7a7eb 100644 --- a/po/ar.po +++ b/po/ar.po @@ -3684,6 +3684,24 @@ msgstr "يجب أن يكون طول المصفوفة عدد صحيح موجب م msgid "Array object expected" msgstr "عنصر مصفوفة متوقع" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/bg.po b/po/bg.po index f357bdd537f..31faacb4a08 100644 --- a/po/bg.po +++ b/po/bg.po @@ -3703,6 +3703,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/ca.po b/po/ca.po index c39a36a4f4b..9565b8f570a 100644 --- a/po/ca.po +++ b/po/ca.po @@ -3702,6 +3702,24 @@ msgstr "La longitud del vector ha de ser un nombre enter positiu finit" msgid "Array object expected" msgstr "S'esperava un objecte Array" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "DLL de nucli del Wine" diff --git a/po/cs.po b/po/cs.po index f9116d3b094..921c825b289 100644 --- a/po/cs.po +++ b/po/cs.po @@ -3638,6 +3638,24 @@ msgstr "Rozměr pole musí být konečné kladné celé číslo" msgid "Array object expected" msgstr "Očekáván objekt typu pole" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/da.po b/po/da.po index 0da339a8ae9..aac34f4f9da 100644 --- a/po/da.po +++ b/po/da.po @@ -3725,6 +3725,24 @@ msgstr "Array længde skal være et endeligt positivt heltal" msgid "Array object expected" msgstr "Array objekt forventet" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/de.po b/po/de.po index 28dd97029ff..b7037178953 100644 --- a/po/de.po +++ b/po/de.po @@ -3693,6 +3693,24 @@ msgstr "Array-Größe muss eine natürliche Zahl sein" msgid "Array object expected" msgstr "Array-Objekt erwartet" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Wine-Kernel-DLL" diff --git a/po/el.po b/po/el.po index cec289cc350..4374afe2221 100644 --- a/po/el.po +++ b/po/el.po @@ -3623,6 +3623,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/en.po b/po/en.po index 4aa6cc43414..e23d575f920 100644 --- a/po/en.po +++ b/po/en.po @@ -3685,6 +3685,26 @@ msgstr "Array length must be a finite positive integer" msgid "Array object expected" msgstr "Array object expected" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "Cannot redefine non-configurable property '|'" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "Cannot modify non-writable property '|'" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "Property cannot have both accessors and a value" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Wine kernel DLL" diff --git a/po/en_US.po b/po/en_US.po index d8aea4aa7ef..79e8cd9b487 100644 --- a/po/en_US.po +++ b/po/en_US.po @@ -3685,6 +3685,26 @@ msgstr "Array length must be a finite positive integer" msgid "Array object expected" msgstr "Array object expected" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "Cannot redefine non-configurable property '|'" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "Cannot modify non-writable property '|'" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "Property cannot have both accessors and a value" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Wine kernel DLL" diff --git a/po/eo.po b/po/eo.po index abef45b2901..13036130ae1 100644 --- a/po/eo.po +++ b/po/eo.po @@ -3607,6 +3607,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/es.po b/po/es.po index b06271103db..2cdcb05f5ad 100644 --- a/po/es.po +++ b/po/es.po @@ -3734,6 +3734,24 @@ msgstr "La longitud del array debe ser un entero positivo finito" msgid "Array object expected" msgstr "Objeto array esperado" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/fa.po b/po/fa.po index e26a6340c50..22d5a464c55 100644 --- a/po/fa.po +++ b/po/fa.po @@ -3661,6 +3661,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/fi.po b/po/fi.po index 5da10ac9b4c..4bc100e7fcd 100644 --- a/po/fi.po +++ b/po/fi.po @@ -3679,6 +3679,24 @@ msgstr "Taulukon pituuden täytyy olla positiivinen kokonaisluku" msgid "Array object expected" msgstr "Odotettiin taulukkoa" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Winen ydin-DLL" diff --git a/po/fr.po b/po/fr.po index 68fbe278d6c..33c1d58e7c3 100644 --- a/po/fr.po +++ b/po/fr.po @@ -3709,6 +3709,24 @@ msgstr "La longueur d'un tableau doit être un entier positif" msgid "Array object expected" msgstr "Objet tableau attendu" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/he.po b/po/he.po index a0db7ecc90f..4961858b775 100644 --- a/po/he.po +++ b/po/he.po @@ -3695,6 +3695,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/hi.po b/po/hi.po index db15ae256e7..186a25dd53b 100644 --- a/po/hi.po +++ b/po/hi.po @@ -3594,6 +3594,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/hr.po b/po/hr.po index e315a7d1d44..1a5e952489d 100644 --- a/po/hr.po +++ b/po/hr.po @@ -3689,6 +3689,24 @@ msgstr "Duljina niza treba biti konačan prirodan broj" msgid "Array object expected" msgstr "Očekivan niz objekata" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/hu.po b/po/hu.po index d127093d74f..e88dcff5134 100644 --- a/po/hu.po +++ b/po/hu.po @@ -3743,6 +3743,24 @@ msgstr "A tömb hosszának egy véges pozitív egész számnak kell lennie" msgid "Array object expected" msgstr "Tömb objektumot vártam" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/it.po b/po/it.po index b9660dcbcfe..dc9fec69c7c 100644 --- a/po/it.po +++ b/po/it.po @@ -3751,6 +3751,24 @@ msgstr "La lunghezza dell'array deve essere un intero finito e positivo" msgid "Array object expected" msgstr "Previsto un oggetto array" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/ja.po b/po/ja.po index 91959f2f39e..1d9f9a534fd 100644 --- a/po/ja.po +++ b/po/ja.po @@ -3677,6 +3677,24 @@ msgstr "配列の長さは有限の正整数でなければなりません" msgid "Array object expected" msgstr "配列オブジェクトを期待していました" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/ko.po b/po/ko.po index 3c8cbf97775..aac1897ffed 100644 --- a/po/ko.po +++ b/po/ko.po @@ -3692,6 +3692,24 @@ msgstr "배열 길이는 반드시 한정된 양의 정수이어야 함" msgid "Array object expected" msgstr "배열 객체가 필요함" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/lt.po b/po/lt.po index 6ee4a36f2ef..edf843e07c8 100644 --- a/po/lt.po +++ b/po/lt.po @@ -3688,6 +3688,24 @@ msgstr "Masyvo dydis turi būti teigiamas sveikasis skaičius" msgid "Array object expected" msgstr "Tikėtasi masyvo objekto" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Wine branduolio DLL" diff --git a/po/ml.po b/po/ml.po index 154eb40e55d..fec3dbbcc54 100644 --- a/po/ml.po +++ b/po/ml.po @@ -3594,6 +3594,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/nb_NO.po b/po/nb_NO.po index 83ac42f6819..b0912a7b424 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -3691,6 +3691,24 @@ msgstr "Rekkens lengde må være et endelig, positivt tall" msgid "Array object expected" msgstr "Forventet rekke-objekt" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Wine kjerne-DLL" diff --git a/po/nl.po b/po/nl.po index 1ffce8bf66c..331c00dcd28 100644 --- a/po/nl.po +++ b/po/nl.po @@ -3724,6 +3724,24 @@ msgstr "Array lengte moet een eindig, positief geheel getal zijn" msgid "Array object expected" msgstr "Array object verwacht" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/or.po b/po/or.po index 49fb2fb8b7c..231e1c45234 100644 --- a/po/or.po +++ b/po/or.po @@ -3594,6 +3594,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/pa.po b/po/pa.po index e8c651eff05..a5be738c9c8 100644 --- a/po/pa.po +++ b/po/pa.po @@ -3594,6 +3594,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/pl.po b/po/pl.po index b6fc0de38ea..aa4480f34c3 100644 --- a/po/pl.po +++ b/po/pl.po @@ -3703,6 +3703,24 @@ msgstr "Długość tablicy musi być skończoną dodatnią liczbą stałą" msgid "Array object expected" msgstr "Oczekiwany obiekt tablicowy" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "DLL jądra WINE" diff --git a/po/pt_BR.po b/po/pt_BR.po index 086e6373e17..d71377adfa5 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -3697,6 +3697,24 @@ msgstr "Tamanho do vetor tem que ser um inteiro finito positivo" msgid "Array object expected" msgstr "Objeto tipo vetor esperado" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/pt_PT.po b/po/pt_PT.po index 06e7974f85d..14fad2961dd 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -3707,6 +3707,24 @@ msgstr "Tamanho do vector tem de ser um inteiro finito positivo" msgid "Array object expected" msgstr "Objecto Array esperado" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/rm.po b/po/rm.po index 6cce7d18ea1..ec689a0f757 100644 --- a/po/rm.po +++ b/po/rm.po @@ -3622,6 +3622,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/ro.po b/po/ro.po index 60ac147f6af..8ba34830bc3 100644 --- a/po/ro.po +++ b/po/ro.po @@ -3664,6 +3664,24 @@ msgstr "Lungimea unei matrice trebuie să fie un număr întreg pozitiv" msgid "Array object expected" msgstr "Se așteaptă un obiect matrice" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/ru.po b/po/ru.po index 146b8dda2c5..002fa4cc5e3 100644 --- a/po/ru.po +++ b/po/ru.po @@ -3693,6 +3693,24 @@ msgstr "Длиной массива должно быть конечное по msgid "Array object expected" msgstr "Ожидается объект типа «Array»" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Библиотека ядра Wine" diff --git a/po/sk.po b/po/sk.po index ea16f4fe885..b65258ba3e8 100644 --- a/po/sk.po +++ b/po/sk.po @@ -3646,6 +3646,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/sl.po b/po/sl.po index 39755ff92dd..827c71845ae 100644 --- a/po/sl.po +++ b/po/sl.po @@ -3745,6 +3745,24 @@ msgstr "Dolžina polja mora bit pozitivno celo število" msgid "Array object expected" msgstr "Pričakovan je bil predmet polja" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/sr_RS@cyrillic.po b/po/sr_RS@cyrillic.po index 21d50b13d0c..ec21cd33b4c 100644 --- a/po/sr_RS@cyrillic.po +++ b/po/sr_RS@cyrillic.po @@ -3733,6 +3733,24 @@ msgstr "Низ дужине мора бити коначан позитиван msgid "Array object expected" msgstr "Очекивани низ објекта" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/sr_RS@latin.po b/po/sr_RS@latin.po index afdbeb5eaf5..0f73b614d4d 100644 --- a/po/sr_RS@latin.po +++ b/po/sr_RS@latin.po @@ -3810,6 +3810,24 @@ msgstr "Niz dužine mora biti konačan pozitivan ceo broj" msgid "Array object expected" msgstr "Očekivani niz objekta" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/sv.po b/po/sv.po index 8cd4011dbf7..a1d46176c1a 100644 --- a/po/sv.po +++ b/po/sv.po @@ -3686,6 +3686,24 @@ msgstr "Array-längd måste vara ett positivt ändligt heltal" msgid "Array object expected" msgstr "Array-objekt förväntades" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Wine-kärn-DLL" diff --git a/po/te.po b/po/te.po index 5dc67655e36..ca3b8bc862f 100644 --- a/po/te.po +++ b/po/te.po @@ -3594,6 +3594,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/th.po b/po/th.po index 85b5f802dd9..8d6ed511679 100644 --- a/po/th.po +++ b/po/th.po @@ -3641,6 +3641,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/tr.po b/po/tr.po index 3afbb82b153..271a3607788 100644 --- a/po/tr.po +++ b/po/tr.po @@ -3686,6 +3686,24 @@ msgstr "Dizi adı pozitif sonlu bir sayı olmalıdır" msgid "Array object expected" msgstr "Beklenen dizi nesnesi" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Wine çekirdek DLL'si" diff --git a/po/uk.po b/po/uk.po index c50f0de0a9b..d8ca3ff5c58 100644 --- a/po/uk.po +++ b/po/uk.po @@ -3695,6 +3695,24 @@ msgstr "Довжиною масиву повинне бути скінченне msgid "Array object expected" msgstr "Очікується об'єкт Array" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Бібліотека ядра Wine" diff --git a/po/wa.po b/po/wa.po index 9b7b0829f50..9874fece81d 100644 --- a/po/wa.po +++ b/po/wa.po @@ -3650,6 +3650,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/wine.pot b/po/wine.pot index 7c71e41c320..ec0dec34ca1 100644 --- a/po/wine.pot +++ b/po/wine.pot @@ -3554,6 +3554,24 @@ msgstr "" msgid "Array object expected" msgstr "" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index 90f54425027..1f95335019c 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -3632,6 +3632,24 @@ msgstr "数组的长度必须为一个有限正整数" msgid "Array object expected" msgstr "期望得到 Array 对象" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr "Wine kernel DLL" diff --git a/po/zh_TW.po b/po/zh_TW.po index ecb24a9e26e..ea823324b8b 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -3654,6 +3654,24 @@ msgstr "陣列長度必須是有限正整數" msgid "Array object expected" msgstr "預期為陣列物件" +#: jscript.rc:69 +msgid "" +"'writable' attribute on the property descriptor cannot be set to 'true' on " +"this object" +msgstr "" + +#: jscript.rc:70 +msgid "Cannot redefine non-configurable property '|'" +msgstr "" + +#: jscript.rc:71 +msgid "Cannot modify non-writable property '|'" +msgstr "" + +#: jscript.rc:72 +msgid "Property cannot have both accessors and a value" +msgstr "" + #: ../../include/wine/wine_common_ver.rc:129 msgid "Wine kernel DLL" msgstr ""