From 710a18d6affeb07e3466558dabdac49c7cab0575 Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Fri, 10 Jul 2015 23:07:02 +0300 Subject: [PATCH] Add 'length' property of String.prototype built-in object. JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com --- .../ecma-builtin-string-prototype.inc.h | 14 ++++++++++++++ tests/jerry/string-prototype.js | 15 +++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 tests/jerry/string-prototype.js diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.inc.h index 786ce6558..ccd5b0399 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.inc.h @@ -25,6 +25,10 @@ # define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable) #endif /* !OBJECT_VALUE */ +#ifndef NUMBER_VALUE +# define NUMBER_VALUE(name, number_value, prop_writable, prop_enumerable, prop_configurable) +#endif /* !NUMBER_VALUE */ + #ifndef ROUTINE # define ROUTINE(name, c_function_name, args_number, length_prop_value) #endif /* !ROUTINE */ @@ -42,6 +46,16 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_PROPERTY_NOT_ENUMERABLE, ECMA_PROPERTY_CONFIGURABLE) +/* Number properties: + * (property name, number value) */ + +// 15.5.4 (String.prototype is itself a String object whose value is an empty String), 15.5.5.1 +NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, + 0, + ECMA_PROPERTY_NOT_WRITABLE, + ECMA_PROPERTY_NOT_ENUMERABLE, + ECMA_PROPERTY_NOT_CONFIGURABLE) + /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_TO_STRING_UL, ecma_builtin_string_prototype_object_to_string, 0, 0) diff --git a/tests/jerry/string-prototype.js b/tests/jerry/string-prototype.js new file mode 100644 index 000000000..05576fa82 --- /dev/null +++ b/tests/jerry/string-prototype.js @@ -0,0 +1,15 @@ +// Copyright 2015 Samsung Electronics Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +assert (String.prototype.length === 0);