Skip to content

Running object.assign under SES #82

@katelynsills

Description

@katelynsills

Hi @ljharb, I'm trying to use Enzyme under SES, and I'm running into an issue that involves the object.assign package and define-properties package, although it may be solved by something lower down in the dependency tree.

Here's what I'm seeing:

TypeError: Cannot define property getPolyfill, object is not extensible
    at defineProperty (<anonymous>)
    at defineProperty (/Users/katesills/code/agoric-sdk/node_modules/define-properties/index.js:34:3)
    at defineProperties (/Users/katesills/code/agoric-sdk/node_modules/define-properties/index.js:52:3)
    at Object.<anonymous> (/Users/katesills/code/agoric-sdk/node_modules/object.assign/index.js:11:1)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Object.<anonymous> (/Users/katesills/code/agoric-sdk/node_modules/enzyme/build/ReactWrapper.js:11:15)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Object.<anonymous> (/Users/katesills/code/agoric-sdk/node_modules/enzyme/build/index.js:3:21)
    at Generator.next (<anonymous>)
    at Object.<anonymous> (/Users/katesills/code/agoric-sdk/packages/ui-components/compiled/test/_setup-enzyme-adapter.js:1)
    at Generator.next (<anonymous>)
    at load (/Users/katesills/code/agoric-sdk/packages/ui-components/node_modules/ava/lib/worker/subprocess.js:213:10)
    at /Users/katesills/code/agoric-sdk/packages/ui-components/node_modules/ava/lib/worker/subprocess.js:218:22
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

  › TypeError: Cannot define property getPolyfill, object is not extensible
  › defineProperty (<anonymous>)
  › defineProperty (/Users/katesills/code/agoric-sdk/node_modules/define-properties/index.js:34:3)
  › defineProperties (/Users/katesills/code/agoric-sdk/node_modules/define-properties/index.js:52:3)
  › Object.<anonymous> (/Users/katesills/code/agoric-sdk/node_modules/object.assign/index.js:11:1)
  › Object.<anonymous> (/Users/katesills/code/agoric-sdk/node_modules/enzyme/build/ReactWrapper.js:11:15)
  › Object.<anonymous> (/Users/katesills/code/agoric-sdk/node_modules/enzyme/build/index.js:3:21)
  › Generator.next (<anonymous>)
  › Object.<anonymous> (compiled/test/_setup-enzyme-adapter.js:1)
  › Generator.next (<anonymous>)

It seems like the most obvious solution is to change define-property to return early if the object is frozen, but I'm not sure this is the right approach.

var defineProperty = function (object, name, value, predicate) {
	if (Object.isFrozen(object)) {
		return;
	}
	if (name in object && (!isFunction(predicate) || !predicate())) {
		return;
	}
	...

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions