Ignore:
Timestamp:
Dec 29, 2015, 3:49:35 AM (10 years ago)
Author:
Yusuke Suzuki
Message:

[ES6][ES7] Drop Constructability of generator function
https://bugs.webkit.org/show_bug.cgi?id=152383

Reviewed by Saam Barati.

We drop the constructability of generator functions.
This functionality is already landed in ES 2016 draft[1].
And this simplifies the existing JSC's generator implementation;
dropping GeneratorThisMode flag.

[1]: https://github.com/tc39/ecma262/releases/tag/es2016-draft-20151201

(JSC::createExecutableInternal):

  • bytecode/ExecutableInfo.h:

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::generatorThisMode): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): Deleted.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::generatorThisMode): Deleted.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::makeFunction):
(JSC::BytecodeGenerator::generatorThisMode): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ThisNode::emitBytecode):

  • interpreter/Interpreter.cpp:

(JSC::eval): Deleted.

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/Executable.h:
  • runtime/GeneratorThisMode.h: Removed.
  • tests/stress/generator-eval-this.js:

(shouldThrow):

  • tests/stress/generator-is-not-constructible.js: Added.

(shouldThrow):
(A.staticGen):
(A.prototype.gen):
(A):
(TypeError):

  • tests/stress/generator-this.js:

(shouldBe.g.next):

  • tests/stress/generator-with-new-target.js:

(shouldThrow):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp

    r193766 r194435  
    6666    , m_isBuiltinFunction(info.isBuiltinFunction())
    6767    , m_constructorKind(static_cast<unsigned>(info.constructorKind()))
    68     , m_generatorThisMode(static_cast<unsigned>(info.generatorThisMode()))
    6968    , m_superBinding(static_cast<unsigned>(info.superBinding()))
    7069    , m_isDerivedConstructorContext(info.isDerivedConstructorContext())
Note: See TracChangeset for help on using the changeset viewer.