JSValue* stringProtoFuncLocaleCompare(ExecState* exec, JSObject*, JSValue* thisValue, const ArgList& args) { if (args.size() < 1) return jsNumber(exec, 0); UString s = thisValue->toThisString(exec); JSValue* a0 = args.at(exec, 0); return jsNumber(exec, localeCompare(s, a0->toString(exec))); }
JSValue JSC_HOST_CALL stringProtoFuncLocaleCompare(ExecState* exec, JSObject*, JSValue thisValue, const ArgList& args) { if (args.size() < 1) return jsNumber(exec, 0); UString s = thisValue.toThisString(exec); JSValue a0 = args.at(0); return jsNumber(exec, localeCompare(s, a0.toString(exec))); }
CompletionType evaluate() { Register<Value> value; switch (method) { case ToString: case ValueOf: if (!getThis()->isObject()) { throw getErrorInstance("TypeError"); } value = static_cast<ObjectValue*>(getThis())->getValueProperty(); if (!value->isString()) { throw getErrorInstance("TypeError"); } break; case CharAt: value = charAt(); break; case CharCodeAt: value = charCodeAt(); break; case Concat: value = concat(getThis()); break; case IndexOf: value = indexOf(getThis()); break; case LastIndexOf: value = lastIndexOf(getThis()); break; case LocaleCompare: value = localeCompare(getThis()); break; case Match: value = stringMatch(); break; case Replace: value = stringReplace(); break; case Search: value = stringSearch(); break; case Slice: value = slice(getThis()); break; case Split: value = stringSplit(); break; case Substring: value = substring(getThis()); break; case Substr: value = substr(getThis()); break; case ToLowerCase: case ToLocaleLowerCase: value = toLowerCase(getThis()); break; case ToUpperCase: case ToLocaleUpperCase: value = toUpperCase(getThis()); break; } return CompletionType(CompletionType::Return, value, ""); }