From e8d728f8cefb43cf9b3c274e87d33e8a6f5a1d7b Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Wed, 15 Oct 2014 18:02:10 +0400 Subject: [PATCH] Fixing typeof for boolean arguments. --- src/libcoreint/opcodes.c | 6 +----- src/libecmaobjects/ecma-globals.h | 1 + src/libecmaobjects/ecma-helpers-string.c | 1 + tests/jerry/typeof.js | 4 ++-- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/libcoreint/opcodes.c b/src/libcoreint/opcodes.c index e838bd9b9..667674f33 100644 --- a/src/libcoreint/opcodes.c +++ b/src/libcoreint/opcodes.c @@ -1464,13 +1464,9 @@ opfunc_typeof (opcode_t opdata, /**< operation data */ break; } case ECMA_SIMPLE_VALUE_FALSE: - { - type_str_p = ecma_get_magic_string (ECMA_MAGIC_STRING_FALSE); - break; - } case ECMA_SIMPLE_VALUE_TRUE: { - type_str_p = ecma_get_magic_string (ECMA_MAGIC_STRING_TRUE); + type_str_p = ecma_get_magic_string (ECMA_MAGIC_STRING_BOOLEAN); break; } case ECMA_SIMPLE_VALUE_EMPTY: diff --git a/src/libecmaobjects/ecma-globals.h b/src/libecmaobjects/ecma-globals.h index 3fb2f25d2..c53f7f151 100644 --- a/src/libecmaobjects/ecma-globals.h +++ b/src/libecmaobjects/ecma-globals.h @@ -647,6 +647,7 @@ typedef enum ECMA_MAGIC_STRING_NULL, /**< "null" */ ECMA_MAGIC_STRING_FALSE, /**< "false" */ ECMA_MAGIC_STRING_TRUE, /**< "true" */ + ECMA_MAGIC_STRING_BOOLEAN, /**< "boolean" */ ECMA_MAGIC_STRING_NUMBER, /**< "number" */ ECMA_MAGIC_STRING_STRING, /**< "string" */ ECMA_MAGIC_STRING_OBJECT, /**< "object" */ diff --git a/src/libecmaobjects/ecma-helpers-string.c b/src/libecmaobjects/ecma-helpers-string.c index 333a3b5ec..1342ed996 100644 --- a/src/libecmaobjects/ecma-helpers-string.c +++ b/src/libecmaobjects/ecma-helpers-string.c @@ -1284,6 +1284,7 @@ ecma_get_magic_string_zt (ecma_magic_string_id_t id) /**< magic string id */ case ECMA_MAGIC_STRING_NULL: return (ecma_char_t*) "null"; case ECMA_MAGIC_STRING_FALSE: return (ecma_char_t*) "false"; case ECMA_MAGIC_STRING_TRUE: return (ecma_char_t*) "true"; + case ECMA_MAGIC_STRING_BOOLEAN: return (ecma_char_t*) "boolean"; case ECMA_MAGIC_STRING_NUMBER: return (ecma_char_t*) "number"; case ECMA_MAGIC_STRING_STRING: return (ecma_char_t*) "string"; case ECMA_MAGIC_STRING_OBJECT: return (ecma_char_t*) "object"; diff --git a/tests/jerry/typeof.js b/tests/jerry/typeof.js index 57ae2f7a6..9a3980faf 100644 --- a/tests/jerry/typeof.js +++ b/tests/jerry/typeof.js @@ -19,8 +19,8 @@ function f() assert(typeof(a) === "undefined"); assert(typeof(null) === "object"); -assert(typeof(false) === "false"); -assert(typeof(true) === "true"); +assert(typeof(false) === "boolean"); +assert(typeof(true) === "boolean"); assert(typeof(1) === "number"); assert(typeof(1.1) === "number"); assert(typeof('abcd') === "string");