| Index: src/full-codegen.cc
|
| diff --git a/src/full-codegen.cc b/src/full-codegen.cc
|
| index 2ccbca87ef0fdc30858ac86ef8947276758e0fab..f7a063aed8b9c1e65ae27178ad5abad0760b37d2 100644
|
| --- a/src/full-codegen.cc
|
| +++ b/src/full-codegen.cc
|
| @@ -571,6 +571,78 @@ void FullCodeGenerator::SetSourcePosition(int pos) {
|
| }
|
|
|
|
|
| +void FullCodeGenerator::EmitInlineRuntimeCall(CallRuntime* expr) {
|
| + Handle<String> name = expr->name();
|
| + if (strcmp("_IsSmi", *name->ToCString()) == 0) {
|
| + EmitIsSmi(expr->arguments());
|
| + } else if (strcmp("_IsNonNegativeSmi", *name->ToCString()) == 0) {
|
| + EmitIsNonNegativeSmi(expr->arguments());
|
| + } else if (strcmp("_IsObject", *name->ToCString()) == 0) {
|
| + EmitIsObject(expr->arguments());
|
| + } else if (strcmp("_IsUndetectableObject", *name->ToCString()) == 0) {
|
| + EmitIsUndetectableObject(expr->arguments());
|
| + } else if (strcmp("_IsFunction", *name->ToCString()) == 0) {
|
| + EmitIsFunction(expr->arguments());
|
| + } else if (strcmp("_IsArray", *name->ToCString()) == 0) {
|
| + EmitIsArray(expr->arguments());
|
| + } else if (strcmp("_IsRegExp", *name->ToCString()) == 0) {
|
| + EmitIsRegExp(expr->arguments());
|
| + } else if (strcmp("_IsConstructCall", *name->ToCString()) == 0) {
|
| + EmitIsConstructCall(expr->arguments());
|
| + } else if (strcmp("_ObjectEquals", *name->ToCString()) == 0) {
|
| + EmitObjectEquals(expr->arguments());
|
| + } else if (strcmp("_Arguments", *name->ToCString()) == 0) {
|
| + EmitArguments(expr->arguments());
|
| + } else if (strcmp("_ArgumentsLength", *name->ToCString()) == 0) {
|
| + EmitArgumentsLength(expr->arguments());
|
| + } else if (strcmp("_ClassOf", *name->ToCString()) == 0) {
|
| + EmitClassOf(expr->arguments());
|
| + } else if (strcmp("_Log", *name->ToCString()) == 0) {
|
| + EmitLog(expr->arguments());
|
| + } else if (strcmp("_RandomHeapNumber", *name->ToCString()) == 0) {
|
| + EmitRandomHeapNumber(expr->arguments());
|
| + } else if (strcmp("_SubString", *name->ToCString()) == 0) {
|
| + EmitSubString(expr->arguments());
|
| + } else if (strcmp("_RegExpExec", *name->ToCString()) == 0) {
|
| + EmitRegExpExec(expr->arguments());
|
| + } else if (strcmp("_ValueOf", *name->ToCString()) == 0) {
|
| + EmitValueOf(expr->arguments());
|
| + } else if (strcmp("_SetValueOf", *name->ToCString()) == 0) {
|
| + EmitSetValueOf(expr->arguments());
|
| + } else if (strcmp("_NumberToString", *name->ToCString()) == 0) {
|
| + EmitNumberToString(expr->arguments());
|
| + } else if (strcmp("_StringCharFromCode", *name->ToCString()) == 0) {
|
| + EmitStringCharFromCode(expr->arguments());
|
| + } else if (strcmp("_StringCharCodeAt", *name->ToCString()) == 0) {
|
| + EmitStringCharCodeAt(expr->arguments());
|
| + } else if (strcmp("_StringCharAt", *name->ToCString()) == 0) {
|
| + EmitStringCharAt(expr->arguments());
|
| + } else if (strcmp("_StringAdd", *name->ToCString()) == 0) {
|
| + EmitStringAdd(expr->arguments());
|
| + } else if (strcmp("_StringCompare", *name->ToCString()) == 0) {
|
| + EmitStringCompare(expr->arguments());
|
| + } else if (strcmp("_MathPow", *name->ToCString()) == 0) {
|
| + EmitMathPow(expr->arguments());
|
| + } else if (strcmp("_MathSin", *name->ToCString()) == 0) {
|
| + EmitMathSin(expr->arguments());
|
| + } else if (strcmp("_MathCos", *name->ToCString()) == 0) {
|
| + EmitMathCos(expr->arguments());
|
| + } else if (strcmp("_MathSqrt", *name->ToCString()) == 0) {
|
| + EmitMathSqrt(expr->arguments());
|
| + } else if (strcmp("_CallFunction", *name->ToCString()) == 0) {
|
| + EmitCallFunction(expr->arguments());
|
| + } else if (strcmp("_RegExpConstructResult", *name->ToCString()) == 0) {
|
| + EmitRegExpConstructResult(expr->arguments());
|
| + } else if (strcmp("_SwapElements", *name->ToCString()) == 0) {
|
| + EmitSwapElements(expr->arguments());
|
| + } else if (strcmp("_GetFromCache", *name->ToCString()) == 0) {
|
| + EmitGetFromCache(expr->arguments());
|
| + } else {
|
| + UNREACHABLE();
|
| + }
|
| +}
|
| +
|
| +
|
| void FullCodeGenerator::EmitLogicalOperation(BinaryOperation* expr) {
|
| Label eval_right, done;
|
|
|
|
|