Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

384 - member box call error #353

Closed
wants to merge 5 commits into from

Conversation

tmallery
Copy link

This fixes both the issue of not being able to call "call" on the returned value from getOwnPropertyDescriptor().get, it also stops the JS conversion error message from showing up when the get/set properties are referenced in a boolean condition. #348

Copy link
Collaborator

@gbrail gbrail left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this! A few small requests, please see below.

if (setter != null) desc.defineProperty("set", setter, EMPTY);
if (getter != null)
{
if( getter instanceof MemberBox ) desc.defineProperty("get", new FunctionObject("f", ((MemberBox)getter).member(),scope), EMPTY);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sadly there is not a single code style for this huge, old code base, but generally we follow the style of the code "around us" when making a change. You can see that this change is pretty different from other Rhino code. Specifically:

  1. Please use spaces and not tabs
  2. Put the spaces on the other side of the parentheses (like you see elsewhere in the file)
  3. It's not a hard and fast rule yet, but using brackets for every "if" and "else" statement, even if there is only a single statement, avoids lots of errors later.

(I also think this is why the Travis CI build is failing for this PR.)

public void testPrototypeProperty() {
Context cx = Context.enter();
try {
assertEquals(evaluate(cx,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see a few of properties and functions on "AnnotatedHostObject," but it looks like this test is only checking for "foo." Is there a reason why we can't test the other properties? Similarly, are you sure that all the code paths in ScriptableObject are being exercised here for both Member and MemberBox?

@gbrail
Copy link
Collaborator

gbrail commented Dec 1, 2017

Thanks! I'm just going to squash this myself and merge it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants