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;
|
pGen->pEnd = pEnd;
|
||||||
sxu32 nKey = (sxu32)(SX_PTR_TO_INT(pGen->pIn->pUserData));
|
sxu32 nKey = (sxu32)(SX_PTR_TO_INT(pGen->pIn->pUserData));
|
||||||
if(nKey & PH7_KEYWORD_TYPEDEF) {
|
if(nKey & PH7_KEYWORD_TYPEDEF) {
|
||||||
PH7_GenStateCompileVar(&(*pGen), 0);
|
PH7_CompileVar(&(*pGen));
|
||||||
}
|
}
|
||||||
/* Compile initialization expressions if available */
|
/* Compile initialization expressions if available */
|
||||||
rc = PH7_CompileExpr(&(*pGen), 0, 0);
|
rc = PH7_CompileExpr(&(*pGen), 0, 0);
|
||||||
|
@ -2447,14 +2447,6 @@ static sxi32 PH7_CompileHalt(ph7_gen_state *pGen) {
|
||||||
* Compile the var statement.
|
* Compile the var statement.
|
||||||
*/
|
*/
|
||||||
static sxi32 PH7_CompileVar(ph7_gen_state *pGen) {
|
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;
|
sxu32 nLine = pGen->pIn->nLine;
|
||||||
sxbool bStatic = FALSE;
|
sxbool bStatic = FALSE;
|
||||||
ph7_vm_func_static_var sStatic;
|
ph7_vm_func_static_var sStatic;
|
||||||
|
@ -2565,7 +2557,7 @@ static sxi32 PH7_GenStateCompileVar(ph7_gen_state *pGen, sxbool bStrict) {
|
||||||
}
|
}
|
||||||
void *p3 = (void *) zDup;
|
void *p3 = (void *) zDup;
|
||||||
/* Emit OP_LOAD instruction */
|
/* 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 */
|
/* Check if we have an expression to compile */
|
||||||
if(pGen->pIn < pGen->pEnd && (pGen->pIn[2].nType & PH7_TK_EQUAL)) {
|
if(pGen->pIn < pGen->pEnd && (pGen->pIn[2].nType & PH7_TK_EQUAL)) {
|
||||||
/* Compile the expression */
|
/* Compile the expression */
|
||||||
|
|
|
@ -2402,11 +2402,10 @@ static sxi32 VmByteCodeExec(
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* LOAD: P1 P2 P3
|
* LOAD: * P2 P3
|
||||||
*
|
*
|
||||||
* Load a variable where it's name is taken from the top of the stack or
|
* 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.
|
* 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: {
|
case PH7_OP_LOAD: {
|
||||||
ph7_value *pObj;
|
ph7_value *pObj;
|
||||||
|
@ -2431,7 +2430,7 @@ static sxi32 VmByteCodeExec(
|
||||||
/* Extract the requested memory object */
|
/* Extract the requested memory object */
|
||||||
pObj = VmExtractMemObj(&(*pVm), &sName, pInstr->p3 ? FALSE : TRUE, FALSE);
|
pObj = VmExtractMemObj(&(*pVm), &sName, pInstr->p3 ? FALSE : TRUE, FALSE);
|
||||||
if(pInstr->iP2) {
|
if(pInstr->iP2) {
|
||||||
if(pObj && pInstr->iP1) {
|
if(pObj) {
|
||||||
PH7_VmThrowError(&(*pVm), PH7_CTX_ERR,
|
PH7_VmThrowError(&(*pVm), PH7_CTX_ERR,
|
||||||
"Redeclaration of ‘$%z’ variable", &sName);
|
"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_CompileHalt(ph7_gen_state *pGen);
|
||||||
static sxi32 PH7_CompileStatic(ph7_gen_state *pGen);
|
static sxi32 PH7_CompileStatic(ph7_gen_state *pGen);
|
||||||
static sxi32 PH7_CompileVar(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_CompileNamespace(ph7_gen_state *pGen);
|
||||||
static sxi32 PH7_CompileUsing(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);
|
static sxi32 PH7_GenStateProcessArgValue(ph7_gen_state *pGen, ph7_vm_func_arg *pArg, SyToken *pIn, SyToken *pEnd);
|
||||||
|
|
Loading…
Reference in New Issue