[script] Strings automatically adopt from the global String template

This means string operations now can be applied on raw strings rather than
having to cast them using the String() class template wrapper.

String("something").CharAt(3)
now becomes simply:
"something".CharAt(3)
This commit is contained in:
Charlie Brej 2010-03-24 15:55:59 +00:00
parent 669c2dcc0a
commit fe2ec6ffbf

View file

@ -302,7 +302,18 @@ static script_obj_t *script_evaluate_func (script_state_t *state,
this_obj = script_evaluate (state, name_exp->data.dual.sub_a);
char *this_key_name = script_obj_as_string (this_key);
script_obj_unref (this_key);
func_obj = script_obj_hash_get_element (this_obj, this_key_name);
func_obj = script_obj_hash_peek_element (this_obj, this_key_name);
if (!func_obj && script_obj_is_string (this_obj))
{
script_obj_t *string_hash = script_obj_hash_peek_element (state->global, "String");
func_obj = script_obj_hash_peek_element (string_hash, this_key_name);
script_obj_unref (func_obj);
}
if (!func_obj)
func_obj = script_obj_hash_get_element (this_obj, this_key_name);
free(this_key_name);
}
else if (name_exp->type == SCRIPT_EXP_TYPE_TERM_VAR)