Can not compile without JS_HAS_GENERATORS

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
11 years ago
11 years ago

People

(Reporter: Igor Bukanov, Assigned: Igor Bukanov)

Tracking

({fixed1.8.1.1})

Trunk
fixed1.8.1.1
Points:
---
Dependency tree / graph
Bug Flags:
blocking1.8.1.1 +
in-testsuite -

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 2 obsolete attachments)

(Assignee)

Description

11 years ago
Currently compiling SpiderMonkey with JS_HAS_GENERATORS defined as 0 leads to compilation errors in jsiter.c. This has to be fixed as this is a supported configuration.
Igor, if you could take this one, my head would be less explode-y. Thanks,

/be
(Assignee)

Updated

11 years ago
Assignee: general → igor.bukanov
(Assignee)

Comment 2

11 years ago
Created attachment 239259 [details] [diff] [review]
Implementation v0

Changes to allow to compile/run without JS_HAS_GENEARATORS:

1. JSOP_STARTITER and JSOP_ENDITER should be available even if !JS_HAS_GENEARATORS.

2. Almost all of iterator-related code must be available even if !JS_HAS_GENEARATORS. 

Clearly with extra efforts it would be possible to shrink !JS_HAS_GENEARATORS, but I do not think it worths it. 

Moreover, after the patch the only part of the iterator code that is inside  JS_HAS_GENEARATORS-only section is the definitions of Iterator constructor and self functions. Thus I suggest to always provide full Iterator code including constructor declaration even with !JS_HAS_GENEARATORS.

This would cleanup the meaning of JS_HAS_GENEARATORS to stand just for generator and array comprehension support.
Attachment #239259 - Flags: review?(brendan)
(Assignee)

Comment 3

11 years ago
Created attachment 239260 [details] [diff] [review]
Implementation v1

An alternative version that just makes full iterator support available even with !JS_HAS_GENERATORS. I like it much better then v0.
Attachment #239260 - Flags: review?(brendan)
(Assignee)

Comment 4

11 years ago
Created attachment 239262 [details] [diff] [review]
Implementation v1b

This is just v1 with fixed comments to reflect the reality after the patch.
Attachment #239260 - Attachment is obsolete: true
Attachment #239262 - Flags: review?(brendan)
Attachment #239260 - Flags: review?(brendan)
Comment on attachment 239262 [details] [diff] [review]
Implementation v1b

Thanks -- I have the jsinterp.c change in my tree already, hacked it the other day as I was passing by.

We should figure link these bugs to the js1.7 bug, so we don't miss anything that wasn't fixed1.8.1.

/be
Attachment #239262 - Flags: review?(brendan) → review+
(Assignee)

Updated

11 years ago
Blocks: 336373
(Assignee)

Comment 6

11 years ago
I committed the patch from comment 4 to the trunk:

Checking in jsinterp.c;
/cvsroot/mozilla/js/src/jsinterp.c,v  <--  jsinterp.c
new revision: 3.292; previous revision: 3.291
done
Checking in jsiter.c;
/cvsroot/mozilla/js/src/jsiter.c,v  <--  jsiter.c
new revision: 3.42; previous revision: 3.41
done
(Assignee)

Comment 7

11 years ago
Ability to compile without generator support is a feature which is desirable in JS 1.7.
Status: NEW → RESOLVED
Last Resolved: 11 years ago
Flags: blocking1.8.1.1?
Resolution: --- → FIXED

Updated

11 years ago
Flags: in-testsuite-

Updated

11 years ago
Blocks: 355044
(Assignee)

Updated

11 years ago
Attachment #239259 - Attachment is obsolete: true
Attachment #239259 - Flags: review?(brendan)
Flags: blocking1.8.1.1? → blocking1.8.1.1+
As this is blocking1.8.1.1+, please either request approval1.8.1.1 on the
current patch or, if needed, attach a branch version of the patch and request
approval1.8.1.1 on it.
(Assignee)

Comment 9

11 years ago
The committed patch for 1.8.1 from bug 354982 already addressed this.  
Keywords: fixed1.8.1.1
You need to log in before you can comment on or make changes to this bug.