Revert 89d5158d7e
and a8a1a2cd51
. Fix should be based on VM frames.
The build was successful.
Details
The build was successful.
Details
This commit is contained in:
parent
583f43e1f7
commit
c51b3dfa8a
|
@ -1896,7 +1896,7 @@ static sxi32 PH7_CompileFor(ph7_gen_state *pGen) {
|
|||
pGen->pEnd = pEnd;
|
||||
sxu32 nKey = (sxu32)(SX_PTR_TO_INT(pGen->pIn->pUserData));
|
||||
if(nKey & PH7_KEYWORD_TYPEDEF) {
|
||||
PH7_GenStateCompileVar(&(*pGen), 0);
|
||||
PH7_CompileVar(&(*pGen));
|
||||
}
|
||||
/* Compile initialization expressions if available */
|
||||
rc = PH7_CompileExpr(&(*pGen), 0, 0);
|
||||
|
@ -2447,14 +2447,6 @@ static sxi32 PH7_CompileHalt(ph7_gen_state *pGen) {
|
|||
* Compile the var statement.
|
||||
*/
|
||||
static sxi32 PH7_CompileVar(ph7_gen_state *pGen) {
|
||||
sxi32 rc;
|
||||
rc = PH7_GenStateCompileVar(pGen, 1);
|
||||
return rc;
|
||||
}
|
||||
/*
|
||||
* Compile the var statement.
|
||||
*/
|
||||
static sxi32 PH7_GenStateCompileVar(ph7_gen_state *pGen, sxbool bStrict) {
|
||||
sxu32 nLine = pGen->pIn->nLine;
|
||||
sxbool bStatic = FALSE;
|
||||
ph7_vm_func_static_var sStatic;
|
||||
|
@ -2565,7 +2557,7 @@ static sxi32 PH7_GenStateCompileVar(ph7_gen_state *pGen, sxbool bStrict) {
|
|||
}
|
||||
void *p3 = (void *) zDup;
|
||||
/* Emit OP_LOAD instruction */
|
||||
PH7_VmEmitInstr(pGen->pVm, pGen->pIn->nLine, PH7_OP_LOAD, bStrict, nType, p3, 0);
|
||||
PH7_VmEmitInstr(pGen->pVm, pGen->pIn->nLine, PH7_OP_LOAD, 0, nType, p3, 0);
|
||||
/* Check if we have an expression to compile */
|
||||
if(pGen->pIn < pGen->pEnd && (pGen->pIn[2].nType & PH7_TK_EQUAL)) {
|
||||
/* Compile the expression */
|
||||
|
|
|
@ -2402,11 +2402,10 @@ static sxi32 VmByteCodeExec(
|
|||
break;
|
||||
}
|
||||
/*
|
||||
* LOAD: P1 P2 P3
|
||||
* LOAD: * P2 P3
|
||||
*
|
||||
* Load a variable where it's name is taken from the top of the stack or
|
||||
* from the P3 operand. If P2 is set, it will create a new variable.
|
||||
* If P1 is set, it will allow variable redeclaration.
|
||||
*/
|
||||
case PH7_OP_LOAD: {
|
||||
ph7_value *pObj;
|
||||
|
@ -2431,7 +2430,7 @@ static sxi32 VmByteCodeExec(
|
|||
/* Extract the requested memory object */
|
||||
pObj = VmExtractMemObj(&(*pVm), &sName, pInstr->p3 ? FALSE : TRUE, FALSE);
|
||||
if(pInstr->iP2) {
|
||||
if(pObj && pInstr->iP1) {
|
||||
if(pObj) {
|
||||
PH7_VmThrowError(&(*pVm), PH7_CTX_ERR,
|
||||
"Redeclaration of ‘$%z’ variable", &sName);
|
||||
}
|
||||
|
|
|
@ -119,7 +119,6 @@ static sxi32 PH7_CompileReturn(ph7_gen_state *pGen);
|
|||
static sxi32 PH7_CompileHalt(ph7_gen_state *pGen);
|
||||
static sxi32 PH7_CompileStatic(ph7_gen_state *pGen);
|
||||
static sxi32 PH7_CompileVar(ph7_gen_state *pGen);
|
||||
static sxi32 PH7_GenStateCompileVar(ph7_gen_state *pGen, sxbool bStrict);
|
||||
static sxi32 PH7_CompileNamespace(ph7_gen_state *pGen);
|
||||
static sxi32 PH7_CompileUsing(ph7_gen_state *pGen);
|
||||
static sxi32 PH7_GenStateProcessArgValue(ph7_gen_state *pGen, ph7_vm_func_arg *pArg, SyToken *pIn, SyToken *pEnd);
|
||||
|
|
Loading…
Reference in New Issue