Revision: 15957
Author: [email protected]
Date: Tue Jul 30 04:24:11 2013
Log: Revert 15940: "Compilation type and state allocate an unnecessary
Smi on v8::Script."
Due to Mozilla test failures on Win32 debug
[email protected]
Review URL: https://codereview.chromium.org/21062004
http://code.google.com/p/v8/source/detail?r=15957
Modified:
/branches/bleeding_edge/src/accessors.cc
/branches/bleeding_edge/src/compiler.cc
/branches/bleeding_edge/src/factory.cc
/branches/bleeding_edge/src/isolate.cc
/branches/bleeding_edge/src/liveedit.cc
/branches/bleeding_edge/src/objects-inl.h
/branches/bleeding_edge/src/objects-printer.cc
/branches/bleeding_edge/src/objects.h
/branches/bleeding_edge/src/runtime.cc
=======================================
--- /branches/bleeding_edge/src/accessors.cc Mon Jul 29 10:59:02 2013
+++ /branches/bleeding_edge/src/accessors.cc Tue Jul 30 04:24:11 2013
@@ -292,7 +292,7 @@
MaybeObject* Accessors::ScriptGetCompilationType(Object* object, void*) {
Object* script = JSValue::cast(object)->value();
- return Smi::FromInt(Script::cast(script)->compilation_type());
+ return Script::cast(script)->compilation_type();
}
@@ -388,7 +388,8 @@
Handle<Script> script(raw_script);
// If this is not a script compiled through eval there is no eval
position.
- if (script->compilation_type() != Script::COMPILATION_TYPE_EVAL) {
+ int compilation_type = Smi::cast(script->compilation_type())->value();
+ if (compilation_type != Script::COMPILATION_TYPE_EVAL) {
return script->GetHeap()->undefined_value();
}
=======================================
--- /branches/bleeding_edge/src/compiler.cc Tue Jul 30 01:35:48 2013
+++ /branches/bleeding_edge/src/compiler.cc Tue Jul 30 04:24:11 2013
@@ -558,7 +558,8 @@
#ifdef ENABLE_DEBUGGER_SUPPORT
if (info->is_eval()) {
- script->set_compilation_type(Script::COMPILATION_TYPE_EVAL);
+ Script::CompilationType compilation_type =
Script::COMPILATION_TYPE_EVAL;
+ script->set_compilation_type(Smi::FromInt(compilation_type));
// For eval scripts add information on the function from which eval was
// called.
if (info->is_eval()) {
@@ -649,7 +650,8 @@
// the instances of the function.
SetExpectedNofPropertiesFromEstimate(result,
lit->expected_property_count());
- script->set_compilation_state(Script::COMPILATION_STATE_COMPILED);
+ script->set_compilation_state(
+ Smi::FromInt(Script::COMPILATION_STATE_COMPILED));
#ifdef ENABLE_DEBUGGER_SUPPORT
// Notify debugger
=======================================
--- /branches/bleeding_edge/src/factory.cc Tue Jul 30 01:35:48 2013
+++ /branches/bleeding_edge/src/factory.cc Tue Jul 30 04:24:11 2013
@@ -453,11 +453,13 @@
script->set_data(heap->undefined_value());
script->set_context_data(heap->undefined_value());
script->set_type(Smi::FromInt(Script::TYPE_NORMAL));
+
script->set_compilation_type(Smi::FromInt(Script::COMPILATION_TYPE_HOST));
+ script->set_compilation_state(
+ Smi::FromInt(Script::COMPILATION_STATE_INITIAL));
script->set_wrapper(*wrapper);
script->set_line_ends(heap->undefined_value());
script->set_eval_from_shared(heap->undefined_value());
script->set_eval_from_instructions_offset(Smi::FromInt(0));
- script->set_flags(Smi::FromInt(0));
return script;
}
=======================================
--- /branches/bleeding_edge/src/isolate.cc Tue Jul 30 01:35:48 2013
+++ /branches/bleeding_edge/src/isolate.cc Tue Jul 30 04:24:11 2013
@@ -816,9 +816,9 @@
}
if (options & StackTrace::kIsEval) {
- Handle<Object> is_eval =
- script->compilation_type() == Script::COMPILATION_TYPE_EVAL ?
- factory()->true_value() : factory()->false_value();
+ int type = Smi::cast(script->compilation_type())->value();
+ Handle<Object> is_eval = (type == Script::COMPILATION_TYPE_EVAL) ?
+ factory()->true_value() : factory()->false_value();
CHECK_NOT_EMPTY_HANDLE(this,
JSObject::SetLocalPropertyIgnoreAttributes(
stack_frame, eval_key, is_eval, NONE));
=======================================
--- /branches/bleeding_edge/src/liveedit.cc Tue Jul 30 01:35:48 2013
+++ /branches/bleeding_edge/src/liveedit.cc Tue Jul 30 04:24:11 2013
@@ -1557,14 +1557,11 @@
copy->set_data(original->data());
copy->set_type(original->type());
copy->set_context_data(original->context_data());
+ copy->set_compilation_type(original->compilation_type());
copy->set_eval_from_shared(original->eval_from_shared());
copy->set_eval_from_instructions_offset(
original->eval_from_instructions_offset());
- // Copy all the flags, but clear compilation state.
- copy->set_flags(original->flags());
- copy->set_compilation_state(Script::COMPILATION_STATE_INITIAL);
-
return copy;
}
=======================================
--- /branches/bleeding_edge/src/objects-inl.h Mon Jul 29 10:59:02 2013
+++ /branches/bleeding_edge/src/objects-inl.h Tue Jul 30 04:24:11 2013
@@ -4482,29 +4482,12 @@
ACCESSORS(Script, context_data, Object, kContextOffset)
ACCESSORS(Script, wrapper, Foreign, kWrapperOffset)
ACCESSORS_TO_SMI(Script, type, kTypeOffset)
+ACCESSORS_TO_SMI(Script, compilation_type, kCompilationTypeOffset)
+ACCESSORS_TO_SMI(Script, compilation_state, kCompilationStateOffset)
ACCESSORS(Script, line_ends, Object, kLineEndsOffset)
ACCESSORS(Script, eval_from_shared, Object, kEvalFromSharedOffset)
ACCESSORS_TO_SMI(Script, eval_from_instructions_offset,
kEvalFrominstructionsOffsetOffset)
-ACCESSORS_TO_SMI(Script, flags, kFlagsOffset)
-
-Script::CompilationType Script::compilation_type() {
- return BooleanBit::get(flags(), kCompilationTypeBit) ?
- COMPILATION_TYPE_EVAL : COMPILATION_TYPE_HOST;
-}
-void Script::set_compilation_type(CompilationType type) {
- set_flags(BooleanBit::set(flags(), kCompilationTypeBit,
- type == COMPILATION_TYPE_EVAL));
-}
-Script::CompilationState Script::compilation_state() {
- return BooleanBit::get(flags(), kCompilationStateBit) ?
- COMPILATION_STATE_COMPILED : COMPILATION_STATE_INITIAL;
-}
-void Script::set_compilation_state(CompilationState state) {
- set_flags(BooleanBit::set(flags(), kCompilationStateBit,
- state == COMPILATION_STATE_COMPILED));
-}
-
#ifdef ENABLE_DEBUGGER_SUPPORT
ACCESSORS(DebugInfo, shared, SharedFunctionInfo, kSharedFunctionInfoIndex)
=======================================
--- /branches/bleeding_edge/src/objects-printer.cc Mon Jul 29 10:59:02 2013
+++ /branches/bleeding_edge/src/objects-printer.cc Tue Jul 30 04:24:11 2013
@@ -1202,7 +1202,8 @@
context_data()->ShortPrint(out);
PrintF(out, "\n - wrapper: ");
wrapper()->ShortPrint(out);
- PrintF(out, "\n - compilation type: %d", compilation_type());
+ PrintF(out, "\n - compilation type: ");
+ compilation_type()->ShortPrint(out);
PrintF(out, "\n - line ends: ");
line_ends()->ShortPrint(out);
PrintF(out, "\n - eval from shared: ");
=======================================
--- /branches/bleeding_edge/src/objects.h Mon Jul 29 10:59:02 2013
+++ /branches/bleeding_edge/src/objects.h Tue Jul 30 04:24:11 2013
@@ -5849,6 +5849,12 @@
// [type]: the script type.
DECL_ACCESSORS(type, Smi)
+ // [compilation]: how the the script was compiled.
+ DECL_ACCESSORS(compilation_type, Smi)
+
+ // [is_compiled]: determines whether the script has already been
compiled.
+ DECL_ACCESSORS(compilation_state, Smi)
+
// [line_ends]: FixedArray of line ends positions.
DECL_ACCESSORS(line_ends, Object)
@@ -5860,19 +5866,6 @@
// function from which eval was called where eval was called.
DECL_ACCESSORS(eval_from_instructions_offset, Smi)
- // [flags]: Holds an exciting bitfield.
- DECL_ACCESSORS(flags, Smi)
-
- // [compilation_type]: how the the script was compiled. Encoded in the
- // 'flags' field.
- inline CompilationType compilation_type();
- inline void set_compilation_type(CompilationType type);
-
- // [compilation_state]: determines whether the script has already been
- // compiled. Encoded in the 'flags' field.
- inline CompilationState compilation_state();
- inline void set_compilation_state(CompilationState state);
-
static inline Script* cast(Object* obj);
// If script source is an external string, check that the underlying
@@ -5891,20 +5884,17 @@
static const int kContextOffset = kDataOffset + kPointerSize;
static const int kWrapperOffset = kContextOffset + kPointerSize;
static const int kTypeOffset = kWrapperOffset + kPointerSize;
- static const int kLineEndsOffset = kTypeOffset + kPointerSize;
+ static const int kCompilationTypeOffset = kTypeOffset + kPointerSize;
+ static const int kCompilationStateOffset =
+ kCompilationTypeOffset + kPointerSize;
+ static const int kLineEndsOffset = kCompilationStateOffset +
kPointerSize;
static const int kIdOffset = kLineEndsOffset + kPointerSize;
static const int kEvalFromSharedOffset = kIdOffset + kPointerSize;
static const int kEvalFrominstructionsOffsetOffset =
kEvalFromSharedOffset + kPointerSize;
- static const int kFlagsOffset =
- kEvalFrominstructionsOffsetOffset + kPointerSize;
- static const int kSize = kFlagsOffset + kPointerSize;
+ static const int kSize = kEvalFrominstructionsOffsetOffset +
kPointerSize;
private:
- // Bit positions in the flags field.
- static const int kCompilationTypeBit = 0;
- static const int kCompilationStateBit = 1;
-
DISALLOW_IMPLICIT_CONSTRUCTORS(Script);
};
=======================================
--- /branches/bleeding_edge/src/runtime.cc Tue Jul 30 01:35:48 2013
+++ /branches/bleeding_edge/src/runtime.cc Tue Jul 30 04:24:11 2013
@@ -12887,7 +12887,7 @@
RUNTIME_ASSERT(script_wrapper->value()->IsScript());
Handle<Script> script(Script::cast(script_wrapper->value()));
- int compilation_state = script->compilation_state();
+ int compilation_state = Smi::cast(script->compilation_state())->value();
RUNTIME_ASSERT(compilation_state == Script::COMPILATION_STATE_INITIAL);
script->set_source(*source);
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.