/** * Check if the character falls into IdentifierPart group (ECMA-262 v5, 7.6) * * @return true / false */ static bool lexer_is_char_can_be_identifier_part (ecma_char_t c) /**< a character */ { return (lexer_is_char_can_be_identifier_start (c) || lit_char_is_unicode_combining_mark (c) || lit_char_is_unicode_digit (c) || lit_char_is_unicode_connector_punctuation (c)); } /* lexer_is_char_can_be_identifier_part */
/** * Helper function to try to parse a part of a date string * * @return NaN if cannot read from string, ToNumber() otherwise */ static ecma_number_t ecma_date_parse_date_chars (lit_utf8_iterator_t *iter, /**< iterator of the utf8 string */ uint32_t num_of_chars) /**< number of characters to read and convert */ { JERRY_ASSERT (num_of_chars > 0); lit_utf8_size_t copy_size = 0; const lit_utf8_byte_t *str_start_p = iter->buf_p + iter->buf_pos.offset; while (num_of_chars--) { if (lit_utf8_iterator_is_eos (iter) || !lit_char_is_unicode_digit (lit_utf8_iterator_peek_next (iter))) { return ecma_number_make_nan (); } copy_size += lit_get_unicode_char_size_by_utf8_first_byte (*(iter->buf_p + iter->buf_pos.offset)); lit_utf8_iterator_incr (iter); } return ecma_utf8_string_to_number (str_start_p, copy_size); } /* ecma_date_parse_date_chars */