diff --git a/mozilla/js/js2/icodegenerator.cpp b/mozilla/js/js2/icodegenerator.cpp index a3dc800fd1a..15ab303b924 100644 --- a/mozilla/js/js2/icodegenerator.cpp +++ b/mozilla/js/js2/icodegenerator.cpp @@ -149,7 +149,7 @@ namespace ICG { Register ICodeGenerator::loadString(String &value) { Register dest = getRegister(); - LoadString *instr = new LoadString(dest, &value); + LoadString *instr = new LoadString(dest, new JSString(value)); iCode->push_back(instr); return dest; } diff --git a/mozilla/js/js2/interpreter.cpp b/mozilla/js/js2/interpreter.cpp index 11ce05818b8..7a652ace55c 100644 --- a/mozilla/js/js2/interpreter.cpp +++ b/mozilla/js/js2/interpreter.cpp @@ -303,7 +303,7 @@ JSValue Context::interpret(ICodeModule* iCode, const JSValues& args) case LOAD_STRING: { LoadString* ls = static_cast(instruction); - (*registers)[dst(ls)] = JSValue(new JSString(src1(ls))); + (*registers)[dst(ls)] = JSValue(src1(ls)); } break; case BRANCH: diff --git a/mozilla/js/js2/tools/gencode.pl b/mozilla/js/js2/tools/gencode.pl index 3c2c55d2beb..f7b8161a9bb 100644 --- a/mozilla/js/js2/tools/gencode.pl +++ b/mozilla/js/js2/tools/gencode.pl @@ -89,7 +89,7 @@ $ops{"LOAD_STRING"} = { super => "Instruction_2", rem => "dest, immediate value (string)", - params => [ ("Register", "String" ) ] + params => [ ("Register", "JSString*" ) ] }; $ops{"LOAD_NAME"} = { @@ -415,7 +415,7 @@ sub get_print_body { push (@oplist, "\"R\" << mOp$op"); } elsif ($type eq "Label*") { push (@oplist, "\"Offset \" << mOp$op->mOffset"); - } elsif ($type =~ /StringAtom/) { + } elsif ($type =~ /String/) { push (@oplist, "\"'\" << *mOp$op << \"'\""); } else { push (@oplist, "mOp$op"); diff --git a/mozilla/js/js2/vmtypes.h b/mozilla/js/js2/vmtypes.h index 87b3a725e30..39290fc5d61 100644 --- a/mozilla/js/js2/vmtypes.h +++ b/mozilla/js/js2/vmtypes.h @@ -43,6 +43,7 @@ namespace JavaScript { namespace VM { using JSTypes::JSValues; + using JSTypes::JSString; enum ICodeOp { ADD, /* dest, source1, source2 */ @@ -637,11 +638,11 @@ namespace VM { } }; - class LoadString : public Instruction_2 { + class LoadString : public Instruction_2 { public: /* dest, immediate value (string) */ - LoadString (Register aOp1, String *aOp2) : - Instruction_2 + LoadString (Register aOp1, JSString* aOp2) : + Instruction_2 (LOAD_STRING, aOp1, aOp2) {}; virtual Formatter& print(Formatter& f) { f << opcodeNames[LOAD_STRING] << "\t" << "R" << mOp1 << ", " << "'" << *mOp2 << "'"; diff --git a/mozilla/js2/src/icodegenerator.cpp b/mozilla/js2/src/icodegenerator.cpp index a3dc800fd1a..15ab303b924 100644 --- a/mozilla/js2/src/icodegenerator.cpp +++ b/mozilla/js2/src/icodegenerator.cpp @@ -149,7 +149,7 @@ namespace ICG { Register ICodeGenerator::loadString(String &value) { Register dest = getRegister(); - LoadString *instr = new LoadString(dest, &value); + LoadString *instr = new LoadString(dest, new JSString(value)); iCode->push_back(instr); return dest; } diff --git a/mozilla/js2/src/interpreter.cpp b/mozilla/js2/src/interpreter.cpp index 11ce05818b8..7a652ace55c 100644 --- a/mozilla/js2/src/interpreter.cpp +++ b/mozilla/js2/src/interpreter.cpp @@ -303,7 +303,7 @@ JSValue Context::interpret(ICodeModule* iCode, const JSValues& args) case LOAD_STRING: { LoadString* ls = static_cast(instruction); - (*registers)[dst(ls)] = JSValue(new JSString(src1(ls))); + (*registers)[dst(ls)] = JSValue(src1(ls)); } break; case BRANCH: diff --git a/mozilla/js2/src/vmtypes.h b/mozilla/js2/src/vmtypes.h index 87b3a725e30..39290fc5d61 100644 --- a/mozilla/js2/src/vmtypes.h +++ b/mozilla/js2/src/vmtypes.h @@ -43,6 +43,7 @@ namespace JavaScript { namespace VM { using JSTypes::JSValues; + using JSTypes::JSString; enum ICodeOp { ADD, /* dest, source1, source2 */ @@ -637,11 +638,11 @@ namespace VM { } }; - class LoadString : public Instruction_2 { + class LoadString : public Instruction_2 { public: /* dest, immediate value (string) */ - LoadString (Register aOp1, String *aOp2) : - Instruction_2 + LoadString (Register aOp1, JSString* aOp2) : + Instruction_2 (LOAD_STRING, aOp1, aOp2) {}; virtual Formatter& print(Formatter& f) { f << opcodeNames[LOAD_STRING] << "\t" << "R" << mOp1 << ", " << "'" << *mOp2 << "'"; diff --git a/mozilla/js2/tools/gencode.pl b/mozilla/js2/tools/gencode.pl index 3c2c55d2beb..f7b8161a9bb 100644 --- a/mozilla/js2/tools/gencode.pl +++ b/mozilla/js2/tools/gencode.pl @@ -89,7 +89,7 @@ $ops{"LOAD_STRING"} = { super => "Instruction_2", rem => "dest, immediate value (string)", - params => [ ("Register", "String" ) ] + params => [ ("Register", "JSString*" ) ] }; $ops{"LOAD_NAME"} = { @@ -415,7 +415,7 @@ sub get_print_body { push (@oplist, "\"R\" << mOp$op"); } elsif ($type eq "Label*") { push (@oplist, "\"Offset \" << mOp$op->mOffset"); - } elsif ($type =~ /StringAtom/) { + } elsif ($type =~ /String/) { push (@oplist, "\"'\" << *mOp$op << \"'\""); } else { push (@oplist, "mOp$op");