static void scArrayJoin(const CFunctionsScopePtr &c, void *data) { string sep = c->getArgument("separator")->toString(); CScriptVarPtr arr = c->getArgument("this"); ostringstream sstr; uint32_t l = arr->getLength(); for (uint32_t i=0;i<l;i++) { if (i>0) sstr << sep; sstr << arr->getProperty(i)->toString(); } c->setReturnVar(c->newScriptVar(sstr.str())); }
static void scArrayContains(const CFunctionsScopePtr &c, void *data) { CScriptVarPtr obj = c->getArgument("obj"); CScriptVarPtr arr = c->getArgument("this"); uint32_t l = arr->getLength(); CScriptVarPtr equal = c->constScriptVar(Undefined); for (uint32_t i=0;i<l;i++) { equal = obj->mathsOp(arr->getProperty(i), LEX_EQUAL); if(equal->toBoolean()) { c->setReturnVar(c->constScriptVar(true)); return; } } c->setReturnVar(c->constScriptVar(false)); }