X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/2eb8215d4156f442f856026f1714aef7ed185752..577bfbfa3f039da39d0f0ac8b396a1ecfd4e5583:/Replace.cpp?ds=sidebyside diff --git a/Replace.cpp b/Replace.cpp index db438b2..222ac9d 100644 --- a/Replace.cpp +++ b/Replace.cpp @@ -190,11 +190,11 @@ void CYContext::NonLocal(CYStatement *&statements) { cy::Syntax::Catch *rescue( $ cy::Syntax::Catch(cye, $$->* - $ CYIf($ CYIdentical($M($ CYVariable(cye), $S("$cyk")), $ CYVariable(unique)), $$->* - $ CYReturn($M($ CYVariable(cye), $S("$cyv"))))->* - $ cy::Syntax::Throw($ CYVariable(cye)))); + $ CYIf($ CYIdentical($M($V(cye), $S("$cyk")), $V(unique)), $$->* + $ CYReturn($M($V(cye), $S("$cyv"))))->* + $ cy::Syntax::Throw($V(cye)))); - declare = declare->Replace(context); + context.Replace(declare); rescue->Replace(context); statements = $$->* @@ -217,13 +217,13 @@ CYAssignment *CYDeclaration::Assignment(CYContext &context) { } CYExpression *CYDeclaration::ForEachIn(CYContext &context) { - return $ CYVariable(identifier_); + return $V(identifier_); } CYExpression *CYDeclaration::Replace(CYContext &context) { context.Replace(identifier_); context.scope_->Declare(context, identifier_, CYIdentifierVariable); - return $ CYVariable(identifier_); + return $V(identifier_); } CYProperty *CYDeclarations::Property(CYContext &context) { $T(NULL) @@ -346,7 +346,7 @@ CYFunctionParameter *CYForInComprehension::Parameter(CYContext &context) const { } CYStatement *CYForInComprehension::Replace(CYContext &context, CYStatement *statement) const { - return $ CYForIn($ CYVariable(name_), set_, CYComprehension::Replace(context, statement)); + return $ CYForIn($V(name_), set_, CYComprehension::Replace(context, statement)); } CYStatement *CYForEachIn::Replace(CYContext &context) { @@ -423,7 +423,7 @@ CYExpression *CYFunctionExpression::Replace(CYContext &context) { } CYFunctionParameter *CYFunctionParameter::Replace(CYContext &context, CYBlock &code) { - name_ = name_->Replace(context); + context.Replace(name_); context.scope_->Declare(context, name_, CYIdentifierArgument); if (next_ != NULL) next_ = next_->Replace(context, code); @@ -531,9 +531,9 @@ CYExpression *CYObject::Replace(CYContext &context) { CYFunctionParameter *CYOptionalFunctionParameter::Replace(CYContext &context, CYBlock &code) { CYFunctionParameter *parameter($ CYFunctionParameter(name_, next_)); parameter = parameter->Replace(context, code); - initializer_ = initializer_->Replace(context); + context.Replace(initializer_); - CYVariable *name($ CYVariable(name_)); + CYVariable *name($V(name_)); code.AddPrev($ CYIf($ CYIdentical($ CYTypeOf(name), $S("undefined")), $$->* $E($ CYAssign(name, initializer_)) )); @@ -634,7 +634,7 @@ CYStatement *CYReturn::Replace(CYContext &context) { if (context.nonlocal_ != NULL) { CYProperty *value(value_ == NULL ? NULL : $ CYProperty($S("$cyv"), value_)); return $ cy::Syntax::Throw($ CYObject( - $ CYProperty($S("$cyk"), $ CYVariable(context.nonlocal_->Target(context)), value) + $ CYProperty($S("$cyk"), $V(context.nonlocal_->Target(context)), value) )); } @@ -850,7 +850,7 @@ CYStatement *CYVar::Replace(CYContext &context) { } CYExpression *CYVariable::Replace(CYContext &context) { - name_ = name_->Replace(context); + context.Replace(name_); return this; }